摘要:本篇教程介绍了Node.js+mongoDB使用指南,希望阅读本篇文章以后大家有所收获,帮助大家对Node.js的理解更加深入。
本篇教程介绍了Node.js+mongoDB使用指南,希望阅读本篇文章以后大家有所收获,帮助大家对Node.js的理解更加深入。
<
nodejs的安装
mongodDB的安装(https://www.cnblogs.com/best/p/6212807.html#_lab2_0_0)
在mongoDB安装目录下 创建data文件夹,里面创建db、log文件夹在mongoDB安装目录下 创建mongo.config文件dbpath=F:\MongoDB\data\dblogpath=F:\MongoDB\data\log\mongo.log
npm install mongoose
使用淘宝 NPM 镜像npm install -g cnpm --registry=https://registry.npm.taobao.org
expresscnpm install express --savecnpm install body-parser --savecnpm install cookie-parser --savecnpm install multer --save
控制台mongod.exe -dbpath F:\MongoDB\data\db
启动 node express_demo.js服务
可视化工具 官网:https://robomongo.org/
服务端文件
1 //express_demo.js 文件
2 var express = require(‘express‘);
3 var bodyParser = require(‘body-parser‘);
4 var app = express();
5
6 app.all(‘*‘, function(req, res, next) {
7 // TODO 支持跨域访问
8 res.setHeader("Access-Control-Allow-Origin", "*");
9 res.setHeader("Access-Control-Allow-Credentials", "true");
10 res.setHeader("Access-Control-Allow-Methods", "*");
11 res.setHeader("Access-Control-Allow-Headers", "Content-Type,Access-Token");
12 res.setHeader("Access-Control-Expose-Headers", "*");
13 next();
14 });
15
16 //用bodyParser插件来获取post请求的参数
17 app.use(bodyParser.json());
18 app.use(bodyParser.urlencoded({ extended: false }));
19
20 var mongoose = require("mongoose");
21 mongoose.Promise = global.Promise;
22 // mongoose.set("debug",true);
23 mongoose.connect(‘mongodb://localhost:27017/myDB‘, { useMongoClient: true });
24 var db = mongoose.connection;
25 db.on("error", function(error) {
26 console.log("数据库连接失败:" + error);
27 });
28
29 db.on("open", function() {
30 console.log("数据库连接成功");
31 });
32
33 //分开的一种写法,实例用的是简写
34 // var Schema = mongoose.Schema;
35 // /*定义模式Student_Schema*/
36 // var Student_Schema = new Schema({
37 // name: String,
38 // id: Number,
39 // phone: String,
40 // date: Date
41 // }, {
42 // versionKey: false
43 // });
44 // /*定义模型Student,注意数据库存的是students*/
45 // mongoose.model("Student", Student_Schema);
46 var MyPerson = mongoose.model(‘persons‘, {
47 name: String,
48 phone: Number
49 });
50
51 app.post(‘/add-person‘, function(req, res) {
52 var params = req.body;
53 if (!params.name || !params.phone) {
54 res.send({ ok: 1, msg: ‘参数错误‘ });
55 return false;
56 }
57 var person = new MyPerson({
58 name: params.name,
59 phone: params.phone
60 });
61 person.save(function(err) {
62 if (err) {
63 console.log(err);
64 } else {
65 res.send({ ok: 0, msg: ‘新增成功‘ });
66 }
67 });
68 })
69
70 app.get(‘/concat‘, function(req, res) {
71 res.send({
72 ok: 0,
73 msg: ‘获取成功‘,
74 data: {
75 total: 1,
76 rows: [{
77 name: "aa",
78 email: "bb",
79 company: "cc",
80 city: "dd"
81 }]
82 }
83 })
84 })
85
86 app.get(‘/list‘, function(req, res) {
87 // console.log(req);
88 // res.setHeader("Access-Control-Allow-Origin", "*");
89 var params = req.query;
90 var conditions = {};
91 var regExp = new RegExp(params.name, "gi");
92 if (params.name) {
93 conditions = { ‘name‘: regExp };
94 }
95 MyPerson.count(conditions, function(err, num) {
96 MyPerson.find(conditions, null, { skip: parseInt((params.page - 1) * params.per_page), limit: parseInt(params.per_page), sort: { "name": 1 } }, function(err, docs) {
97 if (err) {
98 console.error(err);
99 } else {
100 res.send({
101 ok: 0,
102 msg: ‘获取成功‘,
103 data: {
104 total: num,
105 rows: docs
106 }
107 })
108 }
109 });
110 });
111 })
112
113 app.post(‘/update-person‘, function(req, res) {
114 var params = req.body;
115 if (!params.name || !params.phone) {
116 res.send({ ok: 1, msg: ‘参数错误‘ });
117 return false;
118 }
119 var conditions = { _id: params._id };
120 var updates = { $set: { name: params.name, phone: params.phone } };
121 MyPerson.update(conditions, updates, function(error) {
122 if (error) {
123 console.error(error);
124 } else {
125 res.send({ ok: 0, msg: ‘修改成功‘ });
126 }
127 });
128 })
129
130 app.post(‘/del-person‘, function(req, res) {
131 var params = req.body;
132 // console.log(params);
133 MyPerson.remove({ _id: params._id }, function(err) {
134 if (err) {
135 console.error(err);
136 } else {
137 res.send({ ok: 0, msg: ‘删除成功‘ });
138 }
139 });
140 })
141
142 var server = app.listen(8081, function() {
143
144 var host = server.address().address
145 var port = server.address().port
146 console.log("应用实例,访问地址为 //%s:%s", host, port)
147
148 })
注意点:
是对跨域的处理。
用post请求的时候,参数的获取需要加插件,然后通过拿到参数。
skip是(过滤掉前面几个)即从哪个位置开始,limit是限制几个, sort是排序。
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注WEB前端Node.js频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号