张家口网站建设公司,建设网站明细报价表,做海报有哪些网站,php开源公司网站1. express生成器生成express模板
前提需要首先下载好#xff1a;express-generator#xff0c;命令如下(全局安装)
npm install -g express-generator生成模板命令如下#xff1a;
express 项目名称 --viewejs
// --view 参数表示前端界面使用的引擎#xff0c;这里使用…1. express生成器生成express模板
前提需要首先下载好express-generator命令如下(全局安装)
npm install -g express-generator生成模板命令如下
express 项目名称 --viewejs
// --view 参数表示前端界面使用的引擎这里使用ejs这只是一个模板模板下需要模块还需要重新下载为此需要用cd命令来到当前项目的目录下输入命令npm i 下载好相关模块。
2. 连接mongodb数据库
首先前提是先下载好mongodb数据库用nodejs连接mongodb数据库需要下载好一个模块。 首先命令窗口下来到当前项目的目录输入如下命令即可。
npm i mongoose在当前项目的目录下新建config文件夹表示这个文件夹下的文件为项目的相关配置文件。 这里db.config.js文件为mongodb连接配置文件db.config.js里的代码如下
const mongoose require(mongoose);mongoose.connect(mongodb://127.0.0.1:27017/liuzeTest);
// 连接mongodb数据库 liueTest 表示在mongodb数据库中新建liuzeTest数据库之后打开bin文件下的www文件加入如下代码表示引入数据模块。
// 引入数据库模块
require(../config/db.config)3. 启动服务器实现mongodb的增删改查
在当前项目目录下输入命令npm start这样项目就启动了但是代码一改动就又得输入这个命令为了避免这样重复的操作可以修改当前项目下package.json文件修改如下 或者这样也可以
scripts: {start: nodemon ./bin/www},前提是需要下载好node-dev和nodemon。 操作mongodb数据库另外需要提前构建好相应的模型为了新建文件夹model(图片上小编写错了)在这个文件夹下构建相应的js模型文件即可。 写了一个简单的注册、修改、删除、查询代码(不符合项目的业务逻辑只是为了演示操作而已)
3.1. 增加
后端js代码
router.post(/user/add,(req,res){console.log(req.body);const {username,password} req.body;userModel.create({username,password}).then((data){console.log(data);});res.send({ok:1});
})前端请求代码如下
postBtn.onclick (){fetch(/api/user/add,{method:post,body:JSON.stringify({username:username.value,password:password.value}),headers:{Content-Type:application/json}}).then((res){return res.json();}).then((res){console.log(res);})}// 注册按钮点击运行结果
3.2 修改
后端js代码(根据_id值进行修改)
router.post(/user/update/:id, (req, res) {console.log(req.body,req.params.id);const {username,password} req.body;userModel.updateOne({_id:req.params.id},{username,password}).then((data){res.send({ok: 1});});
})前端请求代码如下
updateBtn.onclick (){fetch(/api/user/update/63f188370691942759591324,{method:post,body:JSON.stringify({username:username.value,password:password.value}),headers:{Content-Type:application/json}}).then((res){return res.json();}).then((res){console.log(res);})}// 更新按钮点击运行结果
3.3 删除
后端js代码(根据_id值进行删除)
router.get(/user/del/:id, (req, res) {userModel.deleteOne({_id:req.params.id}).then(function(data){res.send({ok:1});})
})前端请求代码如下
delBtn.onclick function(){fetch(/api/user/del/63f188370691942759591324).then(resres.json()).then(res{console.log(res);})
}
// 删除按钮点击3.4 查询
后端js代码
router.get(/user/list,(req,res){userModel.find({},[username]).then(data{res.send(data);})/*userModel.find({}, [username]).sort({age:-1}).skip().limit().then(data {res.send(data);})根据年龄进行排序 当前为降序skip(0) limit(10) 同[0:10]*/
})
前端请求代码如下
fetch(/api/user/list)
.then(resres.json())
.then(res{let str_s ;res.forEach(ele{str_s trtd${ele._id}/tdtd${ele.username}/td/tr;})tbody_.innerHTML str_s;
})userModel.find()
// find() 参数没有表示查询所有数据
// find({},[username]) // 表示只查询username这个字段的所有数据信息.sort()
/*
排序
如参数为{age:1} 表示按照年龄升序排序
{age:-1} 表示按照年龄降序排序
*/.skip() .limit()
/*
用于分页查询使用两个函数应该一起使用类似切片操作
.skip(0).limit(10) 好比python中 list2[0:10]
.skip(10).limit(20) 好比python中 list2[10:20]
list2表示一个列表
*/