【Node.js】二、基于Express框架 + 连接MongoDB + 写后端接口
在上节,我们讲了如何搭建express环境,现在我们说说如何通过node.js写服务接口给前端调用
1. 首先通过MongoDB建好数据库与表格
例如,我的数据库名字为db_demo,数据库表格为goods
表goods中的数据结构如下:
'productId': {type: String}, // 商品id
'productName': String, // 商品名称
'salePrice': Number, // 商品价格
'productImage': String // 商品图片
mongodb创建表goods,命令如下:
// 创建mongodb数据库表
db.createCollections("goods")
// 把一条数据插入到该goods表当中
db.goods.insert({"id": "100001", "name": "自行车", "salePrcie": 500})
新开一个cmd命令行,直接输入下面这行代码,不要在mongo环境下执行
mongoimport --db db_name --collection goods --file json文件路径(可以把json文件直接拖进来)
2. 安装Mongoose来驱动、操作MongoDB
npm install mongoose
3.在server文件夹下,创建一个新的文件夹,models,里面创建一个关于商品接口的js文件,文件结构如下:

goods.js里面的内容如下:
var mongoose = require('mongoose')
var Schema = mongoose.Schema
var productSchema = new Schema({
'productId': {type: String},
'productName': String,
'salePrice': Number,
'productImage': String
})
module.exports = mongoose.model('Good', productSchema)
4. 在server/routes/文件夹下面新建一个专门写后端接口逻辑的js文件 goods.js,代码如下:
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/db_demo')
mongoose.connection.on('connected', () => {
console.log('MongoDB connected success.')
})
mongoose.connection.on('error', () => {
console.log('MongoDB connected fail.')
})
mongoose.connection.on('disconnected', () => {
console.log('MongoDB connected disconnected.')
})
// 查询商品列表数据
router.get("/", (req, res, next) => {
// 接受前端传来的参数
let page = parseInt(req.param('page'))
let pageSize = parseInt(req.param('pageSize'))
let sort = req.param("sort")
let skip = (page-1)*pageSize
let params = {};
let goodsModel = Goods.find(params).skip(skip).limit(pageSize)
goodsModel.sort({'salePrice': sort})
goodsModel.exec((err, doc) => {
if (err) {
res.json({
status: '1',
msg: err.message
})
} else {
res.json({
status: '0',
msg: '',
result: {
count: doc.length,
list: doc
}
})
}
})
})
module.exports = router;
5. 最后在app.js配置路由地址访问/router/goods.js接口

6. 打开浏览器,效果如下:

成功调用后台接口,后台接口调用MongoDB数据库,最后返回json数据!
--end--
【Node.js】二、基于Express框架 + 连接MongoDB + 写后端接口的更多相关文章
- Node.js下基于Express + Socket.io 搭建一个基本的在线聊天室
一.聊天室简单介绍 采用nodeJS设计,基于express框架,使用WebSocket编程之 socket.io机制.聊天室增加了 注册登录模块 ,并将用户个人信息和聊天记录存入数据库. 数据库采用 ...
- NODE 基于express 框架和mongoDB的cookie和session认证 和图片的上传和删除
源码地址 https://gitee.com/zyqwasd/mongdbSession 本项目的mongodb是本地的mongodb 开启方法可以百度一下 端口是默认的27017 页面效果 1. 注 ...
- Node.js中的express框架,修改内容后自动更新(免重启),express热更新
个人网站 https://iiter.cn 程序员导航站 开业啦,欢迎各位观众姥爷赏脸参观,如有意见或建议希望能够不吝赐教! 以前node中的express框架,每次修改代码之后,都需要重新npm s ...
- Node.js中的express框架获取http参数
最近本人在学习开发NodeJs,使用到express框架,对于网上的学习资料甚少,因此本人会经常在开发中做一些总结. express获取参数有三种方法:官网介绍如下 Checks route para ...
- 配置node.js中的express框架
玩node.js,不玩后台那就是杀鸡牛刀,今天没事整理一下以前开发node.js后台的心得 1.首先安装node.js以及cnpm,在这儿我就不说了,看我node.js中的另一篇文章node.js的安 ...
- node.js环境安装,及连接mongodb测试
1.node.js环境安装 npm config set python python2.7npm config set msvs_version 2013npm config set registry ...
- KoaHub平台基于Node.js开发的Koa的连接MongoDB插件代码详情
koa-mongo MongoDB middleware for koa, support connection pool. koa-mongo koa-mongo is a mongodb midd ...
- node.js安装使用express框架
官网:http://www.expressjs.com.cn/ 使用方式(如果后面需要添加路由等推荐第二种方式,不然需要需要手动添加):一.自己动手搭建 1. 新建项目文件夹,如test,并在命令行中 ...
- nodejs之使用express框架连接mongodb数据库
var express = require('express');var router = express.Router();var app = express();var MongoClient = ...
随机推荐
- python函数用法
一.定义函数 形参:函数完成一项工作所需要的信息,在函数定义时完成 实参:调用函数时传递给函数的信息 二.传递实参 1.位置实参:每个实参都关联到函数定义中的一个形参 示例: def describe ...
- Docker容器跨主机通信
默认情况下Docker容器需要跨主机通信两个主机节点都需要在同一个网段下,这时只要两个Docker容器的宿主机能相互通信并且该容器使用net网络模式,改实现方式为网桥模式通信: 除此之外我们还可以通过 ...
- 在Centos中部署nginx
准备工作: nginx的安装依赖openSSL,zlib和pcre Openssl下载地址: http://www.openssl.org/ zlib下载地址: http://www.zlib.net ...
- data.table包使用应该注意的一些细节
fread中nThread 参数的使用 注意默认nThread=getDTthreads(),即使用所有能用的核心,但并不是核心用的越多越好,本人亲自测试的情况下,其实单核具有较强的性能,只有在数 ...
- 【原创】XAF常用属性字段设置
1.IP地址IPV4 [XafDisplayName()] [ModelDefault("EditMaskType", "RegEx")] [ModelDefa ...
- java从pdf中提取文本
一(单文件转换):下载pdfbox包,百度搜pdfbox.(fontbox-1.8.16.jar和pdfbox-app-1.8.16.jar) package pdf; import java.io. ...
- jsp中input获得后台传递的值
1.后台赋值 req.setAttribute("openId",openId); 2.前台获取值 value="<%= request.getAttribute( ...
- [复试机试]c++读取/写入文本文件
读取文件 #include <iostream> #include <cstdio> #include <string> #include <cstdlib& ...
- Signed Distance Field Shadow in Unity
0x00 前言 最近读到了一个今年GDC上很棒的分享,是Sebastian Aaltonen带来的利用Ray-tracing实现一些有趣的效果的分享. 其中有一段他介绍到了对Signed Distan ...
- vue父子组件及非父子组件通信
1.父组件传递数据给子组件 父组件数据如何传递给子组件呢?可以通过props属性来实现 父组件: <parent> <child :child-msg="msg" ...