使用Node.js和MongoDB开发后端接口
开始准备
- 安装node.js。
- 安装Express。
- 安装MongoDB。
- 往自己的MongoDB数据库里面加点内容
这些是前置条件,准备好以后就可以往下看了
先来看结果:
这是后端返回的数据,(直接访问数据接口获得的数据)
一、创建服务器(就是创建Express项目)
cmd进入到我们的项目,创建一个express项目
我们的项目>express server
express后面跟的是项目名字。
创建好的项目如下:
二、安装依赖
npm install
不安装的话就会报找不到模块的错误
安装好以后我们会看到项目中多了一个文件夹
三、cmd运行express项目
cd server //进入到express项目
node ./bin/www //启动express项目
运行完后如果什么提示也没有,这就代表成功了,
然后打开localhost:3000端口,看到以下界面说明运行成功。
在www文件中可以更改端口号
四、更改我们的视图引擎
express中默认的视图引擎是.jade
我们将其改成.html
- 安装ejs(当前目录:你的项目/server/)
npm install ejs
- 删除views文件夹下面的所有.jade文件,创建一个.html文件,自己写点内容
- 在app.js文件中作以下修改
var ejs=require('ejs'); //引入ejs模块
app.set('views', path.join(__dirname, 'views'));
app.engine('.html',ejs.__express);
app.set('view engine', 'html');
- 在routes文件夹中,修改路由
router.get('/', function(req, res, next) {
res.render('index')//当访问这个路由的时候渲染views文件夹下面的index.html
//为什么?这是因为在上面的app.js中定义的
});
这样就更改完毕了,我们再次启动node服务器(当前目录:你的项目/server)
node ./bin/www
可以看到你们自己的页面显示成功。
五、安装mongoose
mongoose是对MongoDB的封装,就像Mybatis、Hibernate对JDBC的封装
npm i mongoose
六、创建model
在server文件夹下创建一个models文件夹,用来存放model。
新建一个model,叫goods.js(自己起名字)
代码如下:
var mongoose=require('mongoose');
var Schema=mongoose.Schema;
var goodsSchema=new Schema({
//这里根据你的数据库的内容来更改
"goodId" : Number,
"goodName" : Number,
"goodPrice":Number,
"goodImage" : String,
"createTime" : String,
});
module.exports=mongoose.model('good',goodsSchema,'good');
//第一个参数对应数据库的集合名,
但是默认会寻找数据库中该集合的复数形式进行映射(比如说这里是good,会对应到数据库中的goods集合),
所以如果数据库的集合名字不是复数形式的话,就要加上第三个参数,
第三个参数就是指定映射的数据库的名字。
七、创建路由(Router)
在routes文件夹中创建一个名为goods.js的文件
内容如下:
var express=require('express');
var router=express.Router();
var mongoose=require('mongoose');
var goodsModel=require('../models/goods');
//如果数据库有账号和密码就写在这。
mongoose.connect('mongodb://127.0.0.1:27017/design');//design是数据库名
//用来监听数据库是否连接成功(还有其他的监听方法,比如disconnected,error)
mongoose.connection.on('connected',function(){
console.log('connected');
});
//定义路由,当访问该路由的时候,去数据库查找信息并返回
router.get('/',function(req,res,next){
//{}里面代表的是查询的参数,docs表示查询出来的文档
goodsModel.find({},function(err,docs){
if(err){
res.json({
success:'fail',
data:null
})
}else{
res.json({
success:'true',
data:docs
})
}
})
})
module.exports=router;
在app.js文件中
引入该路由并使用
var goodsRouter=require('./routes/goods');
app.use('/goods',goodsRouter);
八、启动项目
启动node服务器(当前目录:你的项目/server) node ./bin/www
访问localhost:3001/goods(端口号默认3000,我的改成了3001)
这是我的数据库里面的内容
可以看到数据获取到了