一、Node自动重启工具 nodemon
cnpm install -g nodemon
1、 编写server.js
const express=require('express');
const app=express();
app.get('/', function(req, res) {
res.send({ page: 'home' })
})
app.listen(3000, () => {
console.log('运行在3000端口')
});
2、 运行server.js
nodemon app.js ~~~~~~~~
二、Express静态资源托管
app.use('/', express.static('public'))
将public文件夹得静态资源托管起来,可以通过http://localhost:3000/index.html来访问静态内容(默认是根路径,路径可改~~~~)
二、解决cors跨域请求
1、 安装cors插件
npm i cors
2、 使用cors插件~~~~
app.use(require('cors')())
三、连接mongdb数据库~~~~
//连接数据库
const mongoose=require('mongoose')
mongoose.connect('mongodb://localhost:27017/express-test', {
useNewUrlParser: true,
useUnifiedTopology: true
})
//定义数据模型
const Schema=mongoose.Schema;
const Product=mongoose.model('Product',newSchema({
title: String
}))
//Product.insertMany([{ title: '产品1' }, { title: '产品2' }, { title: '产品3' }])
//find方法--全部查出
app.get('/product', asyncfunction(req, res) {
//find 查询全部
res.send(awaitProduct.find();
//limit 限制条数
res.send(awaitProduct.limit(2);
//skip 跳过条数
res.send(awaitProduct.skip(4).limit(2); //skip limit结合做分页
//where 参数是查询条件--查询title是产品1的内容~~~~
res.send(awaitProduct.find().where({
title: '产品1'
}))
//sort 排序
res.send(awaitProduct.find().sort({ _id: -1 }))
//产品详情页
app.get('/products/:id', asyncfunction(req, res) {
const data=awaitProduct.findById(req.params.id)
res.send(data)
})
//查询某一个产品-根据id
app.get('/products/:id', asyncfunction(req, res) {
const data =await Product.findById(req.params.id)
res.send(data)
})
post请求——新增产品
//允许express处理提交过来的json
app.use(express.json())
//psot请求
app.post('/products', asyncfunction(req, res) {
//表示客户端用post提交过来的数据
const data = req.body
//在数据模型Product中,创建一条新数据
const product =await Product.create(data)
res.send(product)
})
put请求——修改产品信息
//put 修改产品信息
app.put('/products/:id', asyncfunction(req, res) {
const product =await Product.findById(req.params.id)
product.title = req.body.title
await product.save()
res.send(product)
})
delete请求——删除一条~~~~信息
//delete
app.delete('/products/:id', asyncfunction(req, res) {
const product = await Product.findById(req.params.id)
await product.remove()
res.send({
success: true
})
})
~~~~
四、vscode接口测试插件 - REST client
@url = http://localhost:3000/
GET {{url}}products
###
GET {{url}}products/5df72b83d390c43b6071cee8~~~~
###
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。