Node搭建api接口 (2)

在 /routes/api.js 引入刚刚创建的文件并修改代码

const express = require("express") const router = express() //引入控制器 const {getApis,createApi,getApi,updateApi,deleteApi} = require(\'../controllers/api\') router.route("http://www.likecs.com/").get(getApis).post(createApi) router.route("/:id").get(getApi).put(updateApi).delete(deleteApi) module.exports = router

可以看到我们的代码明显简洁了许多

中间件

安装margan

cnpm install margan --save

在server.js下使用

// 引入morgan中间件 const morgan = require(\'morgan\') // 使用morgan中间件 app.use(morgan("dev"))

使用 morgan中间件 可以将请求信息打印在控制台,便于开发调试

安装colors

cnpm i colors --save

在server.js下使用

app.listen(PORT,console.log(`Server rnning in ${process.env.NODE_ENV} mode on port ${PORT}`.magenta.bold))

使用 colors 可以改变打印信息的颜色

连接mongodb数据库

cnpm i mongoose --save

在config.env 加一个连接mongodb数据库地址的环境变量

mongodb://127.0.0.1:27017

在config新建db.js

const mongoose = require(\'mongoose\') const connectDB = async () => { const conn = await mongoose.connect(process.env.NET_MONGO_URI, { //避免警告信息 useNewUrlParser: true, useUnifiedTopology:true, useCreateIndex:true, useFindAndModify:false }); console.log(`MongoDB Connected: ${conn.connection.host}`.blue.bold); } module.exports = connectDB

在server.js中启动数据库

const connectDB = require(\'./config/db\') ... // 链接数据库 connectDB()

连接mongodb数据库错误处理

process.on("unhandledRejection",(err,promise) => { console.log(`Error:${err.message}`.red.bold); //关闭服务器 & 退出进程 server.colors(() => { process.exit(1) }) })

对于mongoose不熟悉的可以查阅这篇文章:mongoose中文教程

二、搭建用户数据 创建数据模型

在当前目录下新建文件夹models,在文件夹下新建UserInfo.js

const mongoose = require("mongoose"); const UserInfoSchema = new mongoose.Schema({ name: { type: String, //类型 require: [true, \'请填写用户名\'], //是否必须填写 unique: true, //是否唯一 trim: true, //去掉空格 maxlength: [20, \'用户名不能超过20个字\'] //最大长度 }, description: { type: String, require: [true, \'请填写个人简介\'], maxlength: [500, \'个人简介不能超过500个字\'] }, website: { type: String, match: [/[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?/, \'请填写合法的网址\'], //正则匹配 }, phone: { type: String, match: [/^[1][3,4,5,7,8][0-9]{9}$/, \'请填写正确的手机号\'], }, email: { type: String, match: [/^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/, \'请填写正确的邮箱地址\'], }, address: { type: String, default: \'江西省抚州市临川区\' //默认值 }, address: { type: String, default: \'江西省抚州市临川区\' //默认值 }, occupation: { type: String, default: \'前端开发工程师\' }, skill: { type: Array, default: [\'html\', \'js\', \'css\', \'vue\', \'react\', \'node.js\'] }, createdAt:{ type:Date, default:Date.now } }) module.exports = mongoose.model(\'UserInfo\',UserInfoSchema)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwsfgy.html