Node.js初学者,记录一下自己的学习笔记。比如我们要做一个草药的列表,首先新建草药的数据模型,在models文件夹下新建文件herbals.js。代码如下:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var herbalSchema = new Schema({
"name": String,
"herbalTypeId": String,
"description": String,
"cover": String,
"details": String,
})
module.exports = mongoose.model('Herbal', herbalSchema);
然后在routes文件夹下新建文件herbals.js,连接MongoDB数据库:
var express = require('express');
var router = express.Router();
var mongoose = require('mongoose');
var Herbals = require('../models/herbals');
//连接MongoDB数据库
mongoose.connect('mongodb://127.0.0.1:27017/herbal');
mongoose.connection.on('connected', function () {
console.log('数据库连接成功');
})
mongoose.connection.on('error', function () {
console.log('连接失败');
})
mongoose.connection.on('disconnected', function () {
console.log('连接断开');
})
查询列表数据,按分类查询,分页,排序:
/**
* 获取列表数据
* 查询参数:herbalTypeId
* 排序sort,1:升序 -1:降序
*/
router.get('/', function (req, res, next) {
let pn = parseInt(req.param('pn'));
let ps = parseInt(req.param('ps'));
let herbalTypeId = req.param('herbalTypeId');
let sort = parseInt(req.param('sort'));
sort = 1; //1为升序,-1为降序
let skip = (pn - 1) * ps;
let params = {};
if (herbalTypeId == 0 || herbalTypeId == '') {
params = {};
} else {
params = {
herbalTypeId: herbalTypeId,
}
}
let herbalsModel = Herbals.find(params).skip(skip).limit(ps);
// 默认sort为1
herbalsModel.sort({
'name': sort
})
/**
* 先查了数据总数,再查对应页的数据,最后将页数返回
*/
Herbals.find(params, function (err, doc) {
if (err) {
res.json({
code: '1',
message: err.message
})
} else {
let count = doc.length;
let pageCount = Math.ceil(count / ps);
herbalsModel.exec(function (err, result) {
if (err) {
res.json({
code: '1',
message: err.message
})
} else {
res.json({
code: '0',
message: '',
data: {
pageCount: pageCount,
pageList: result,
pageNum: pn
}
})
}
})
}
})
})
添加:
/*添加*/
router.post('/', function (req, res, next) {
let newHerbal = [{
name: req.body.name,
herbalTypeId: req.body.herbalTypeId,
description: req.body.description,
cover: req.body.cover,
details: req.body.details,
}];
Herbals.create(newHerbal, function (err) {
if (err) {
res.json({
code: '1',
msg: err.message
})
} else {
res.json({
code: '0',
msg: '添加成功',
result: {}
})
}
})
})
删除:
/*删除*/
router.delete('/', (req, res, next) => {
Herbals.remove({_id: req.body.id}, function (err, result) {
if (err) {
res.json({
code: '1',
msg: err.message
})
} else {
res.json({
code: '0',
msg: '删除成功',
result: {}
})
}
})
})
根据ID查找详情:
/*根据ID查找详情*/
router.get('/detail/', (req, res, next) => {
var id = req.param('id');
Herbals.find({_id: id}, function (err, doc) {
if (err) {
res.json({
code: '1',
msg: err.message
})
} else {
res.json({
code: '0',
msg: '',
result: doc[0]
})
}
})
})
修改:
/*修改*/
router.put('/', (req, res, next) => {
var condiction = {_id: req.body.id};
var query = {
$set: {
name: req.body.name,
herbalTypeId: req.body.herbalTypeId,
description: req.body.description,
cover: req.body.cover,
details: req.body.details,
}
}
Herbals.update(condiction, query, (err, result) => {
if (err) {
res.json({
code: '1',
msg: err.message
})
} else {
res.json({
code: '0',
msg: '',
result: {}
})
}
})
})
最后,别忘了:
module.exports = router;
初学者,希望慢慢进步!