1,全局安装express框架生成器
1 |
npm install -g express-generator |
2,生成express项目
1 |
express server //server是项目名称 |
3,安装mongodb,rodo 3T
4,接口开发
4.1安装mongoose
1 |
npm install mongoose --save |
4.2创建model
在express server项目下创建models文件夹,新建goods.js文件
1 2 3 4 5 6 7 8 9 10 11 12 13 |
var mongoose = require('mongoose') var Schema = mongoose.Schema; //Schema对应数据库中集合的字段 var produtSchema = new Schema({ "productId":{type:String}, "productName":String, "salePrice":Number, "checked":String, "productNum":Number, "productImage":String }); module.exports = mongoose.model('Good',produtSchema); //这里通过Good,去寻找MongoDB里名称为goods的集合 |
4.3创建路由
在express server项目routes文件夹下创建goods.js文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
var express = require('express'); var router = express.Router(); var mongoose = require('mongoose'); var Goods = require('./../models/goods'); //连接MongoDB数据库 mongoose.connect('mongodb://127.0.0.1:27017/kkdemo'); mongoose.connection.on("connected", function () { console.log("MongoDB connected success.") }); mongoose.connection.on("error", function () { console.log("MongoDB connected fail.") }); mongoose.connection.on("disconnected", function () { console.log("MongoDB connected disconnected.") }); //查询商品列表数据 router.get("/", function (req,res,next) { // res.send("hi,goods"); Goods.find({}, function(err,doc){ if(err){ res.json({ status:'1', msg:err.message }); }else{ res.json({ status:'0', msg:'0', result:{ count: doc.length, list: doc } }); } }); }); module.exports = router; |
在app.js中设置一级路由
1 2 3 |
var goodsRouter = require('./models/goods'); app.use('/goods', goodsRouter); |
这里有一个插曲,将express的视图模板改为HTML,而非默认的jade格式
(1)安装ejs
1 |
npm install ejs --save |
(2)在express项目,app.js中增加
1 2 3 |
var ejs = require('ejs'); app.engine('.html',ejs.__express); |
修改
1 |
app.set('view engine', 'html'); |
5,结束,可以访问了。
http://localhost:3000/goods
未经允许不得转载:MR LYU » express+mongodb+mongoose实践