使用express连接mongodb数据库
目录
使用express连接mongodb数据库
前提:电脑中安装了node和mongodb
一、准备工作
1、要在全局环境下安装express以及它的生成器
npm install express -g
npm install -g express-generator
2、创建项目
npm init -y
express -e project(e表示模板引擎 是ejs project代表项目的名称)
3、安装依赖包以及mongoose
npm install
npm install mongoose --save
4、在启动项目之前可以修改两个地方
修改端口号:
bin/www 文件夹中修改端口号
var port = normalizePort(process.env.PORT || '50');
修改后自动启动项目,这个必须提前在全局安装好nodemon
package.json 文件夹中将node改为nodemon:
"start": "nodemon ./bin/www"
5、启动项目
npm start
二、使用mongoose连接数据库
1、在项目根目录下创建lib文件夹,依次创建以下文件,写入代码
mongoose.js :用于连接数据库的
//先引入mongoose模块
var mongoose = require("mongoose");
//连接数据库服务器
mongoose.connect('mongodb://localhost/myDB', {
useNewUrlParser: true,
useUnifiedTopology: true
}, function (error) {
if (error) {
console.log("数据库连接失败")
} else {
console.log("数据库连接成功")
}
})
//导出
module.exports = mongoose;
schema.js :用来给数据库的内容加限定条件的
//引入mongoose.js文件
var mongoose = require("./mongoose.js")
//定义schema
var schema = mongoose.Schema
const blog=new schema({
//这里是数据库自己创建的属性名:他的属性类型 如:
'user' : {type : String , require : true},
'pwd' : {type : String , require: true}
})
//导出
module.exports = blog;
appMode.js :用来定义使用哪个约束条件来约束这个表。
//引入mongoose.js 文件
var mongoose = require("./mongoose");
//引入schema.js 文件
var schema = require("./schema");
//定义模型 表名为our
var appModel = mongoose.model("our", schema);
//导出
module.exports = appModel;
2、然后在router文件夹下的user.js中写入以下内容
router.post("/add", function (req, res) {
//插入数据
mongo.insertMany({
user: req.body.name,
pwd: req.body.password,
sex: req.body.sex
}).then((data) => {
console.log('插入成功');
}).catch((err) => {
console.log('插入失败');
});
res.send("添加成功")
})
由于router.js中的文件已经提前在app.js中配置好了路由,因此访问的时候可以使用localhost:50/users/add
到这里数据库已经连接成功了,可以使用postman去测试一下写的这个接口是否可用
三、由于使用express -e生成的项目是ejs模版引擎,修改为后缀为:.html
首先框架已经搭建好,然后下载ejs模块并保存到package.josn中去
npm intsall ejs --save
在app.js文件下,引用ejs的那一行代码改成如下代码:
var ejs = require('ejs')
在将配置模版引擎的代码修改如下。
app.set('views', path.join(__dirname, 'views'));
app.engine('.html', ejs.__express); //设置ejs渲染html
app.set('view engine', 'html');//修改为html的模板引擎
- 最后把views下的ejs后缀的文件改成html后缀就行了