【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 = ...
随机推荐
- Html 常用标签及属性
<html>…</html> 定义 HTML 文档<head>…</head> 文档的信息<meta> ...
- SCOPE_IDENTITY() 和 @@identity
@@IDENTITY 和SCOPE_IDENTITY 返回在当前会话中的任何表内所生成的最后一个标识值.但是,SCOPE_IDENTITY 只返回插入到当前作用域中的值:@@IDENTITY 不受限于 ...
- 180815 Python自学成才001
1.为什么学习Python? Python:脚本语言,易入门,可移植. Python适用范围:web开发.自动化测试工具编写. 适用岗位:运维开发(运维).自动化测试(软件测试).Python开发(软 ...
- php调用c/c++时 passthru()被禁用问题
passthru被禁用,需要编辑php.ini文件 disable_functions = scandir,passthru,exec,system,chroot,chgrp,chown,shell_ ...
- 最小生成树 kruskal算法&prim算法
(先更新到这,后面有时间再补,嘤嘤嘤) 今天给大家简单的讲一下最小生成树的问题吧!(ps:本人目前还比较菜,所以最小生成树最后的结果只能输出最小的权值,不能打印最小生成树的路径) 本Tianc在刚学的 ...
- ubuntu Nvidia driver install
在图形界面中,有软件和更新,可以使用附加驱动来更新 最上面的驱动是最新版本,英伟达目前Linux最新的版本是375.39 后面的括号,专有意思是代表英伟达自家的驱动,不开源 选择好之后点击应用更改 关 ...
- SQLite异常 qAdmin: Cannot perform this operation on a closed dataset.【申明:来源于网络】
SQLite异常 qAdmin: Cannot perform this operation on a closed dataset. 当使用 SQLite administrator,打开SQLit ...
- FCC(ES6写法) Symmetric Difference
创建一个函数,接受两个或多个数组,返回所给数组的 对等差分(symmetric difference) (△ or ⊕)数组. 给出两个集合 (如集合 A = {1, 2, 3} 和集合 B = {2 ...
- 1 小时 SQL 极速入门(二)
上篇我们说了 SQL 的基本语法,掌握了这些基本语法后,我们可以对单表进行查询及计算分析.但是一个大的系统,往往会有数十上百张表,而业务关系又错综复杂.我们要查的数据往往在好几张表中,而要从多张表中来 ...
- [Swift]LeetCode211. 添加与搜索单词 - 数据结构设计 | Add and Search Word - Data structure design
Design a data structure that supports the following two operations: void addWord(word) bool search(w ...