赞
踩
Node.js 环境下配置后端的攻略步骤:
API:
服务器:
安装 Node.js:下载并安装 Node.js 运行时环境。
node -v
这个命令在cmd中将显示Node.js的版本号
安装和配置 MongoDB:下载并安装 MongoDB 数据库,并启动 MongoDB 服务。
创建项目文件夹:在命令行中创建一个项目文件夹。
npm init -y
初始化项目并创建package.json
文件
在命令行中使用适合的包管理器(如 npm 或 yarn)安装 Express 和 Mongoose,这些是常用的 Node.js 框架和 MongoDB 的 ORM。
npm install express
安装express
npm install mongoose
安装mongoose
创建一个配置文件:在项目文件夹中创建一个配置文件,例如 xxx.js
,并在该文件中导入 Express、path 和 Mongoose 模块,并导入数据模型。
node
进入node环境
.save xxx.js
创建js文件
// 导入模块
const express = require("express");
const path = require("path");
const mongoose = require("mongoose");
const User = require("User")
在配置文件中,创建一个 Express 应用实例并声明端口号。
// 导出express模块和定义端口号
const app = express();
const port = 3000;
使用 Mongoose 的 connect
方法连接到 MongoDB 数据库。
// 链接MongoDB数据库
mongoose.connect("mongodb://localhost:27017/mydb", {
useNewUrlParser: true,
useUnifiedTopology: true,
});
const db = mongoose.connection;
db.on("error", (err) => {
console.error("MongoDB 链接失败:", err);
});
db.once("open", () => {
console.log("成功链接到 MongoDB 数据库");
});
配置静态文件中间件:使用 Express 的 use
方法在应用中添加静态文件中间件,以便向客户端提供静态文件(如图片、CSS 文件等)。
// 拼接静态文件路径和解析请求的JSON数据
app.use(express.static(path.join(__dirname, "pet2")));
app.use(express.json());
定义路由:使用 Express 的路由方法(如 get
、post
、patch
、delete
等)定义路由处理程序,处理来自客户端的请求,并执行相应的操作(如数据库查询、数据修改等)。
// 主页路由 app.get("/", (req, res) => { res.sendFile(path.join(__dirname, "pet2", "index.html")); }); // 创建用户路由 app.post('/users', async (req, res) => { try { const { account, password } = req.body; const user = new User({ account, password }); await user.save(); res.status(201).json(user); } catch (err) { res.status(400).json({ message: err.message }); } }); // 获取所有用户路由 app.get('/users', async (req, res) => { try { const users = await User.find(); res.json(users); } catch (err) { res.status(500).json({ message: err.message }); } }); // 获取单个用户路由 app.get('/users/:id', getUser, (req, res) => { res.json(res.user); }); // 更新用户路由 app.patch('/users/:id', getUser, async (req, res) => { if (req.body.account) { res.user.account = req.body.account; } if (req.body.password) { res.user.password = req.body.password; } try { const updatedUser = await res.user.save(); res.json(updatedUser); } catch (err) { res.status(400).json({ message: err.message }); } }); // 删除用户路由 app.delete('/users/:id', getUser, async (req, res) => { try { await res.user.remove(); res.json({ message: 'User deleted' }); } catch (err) { res.status(500).json({ message: err.message }); } });
配置中间件:根据需要,可以使用 Express 中间件处理特定请求或执行某些操作。例如,可以创建一个中间件函数用于获取单个用户信息,并在路由处理程序中使用该中间件。
// 中间件 - 获取单个用户
async function getUser(req, res, next) {
try {
const user = await User.findById(req.params.id);
if (!user) {
return res.status(404).json({ message: 'User not found' });
}
res.user = user;
next();
} catch (err) {
return res.status(500).json({ message: err.message });
}
}
配置错误处理中间件:使用 Express 的错误处理中间件来处理应用中的错误,例如 404 错误或服务器错误。
// 404 错误处理中间件
app.use((req, res, next) => {
res.status(404).sendFile(path.join(__dirname, "pet2", "404.html"));
});
// 服务器错误处理中间件
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send("Internal Server Error");
});
在额外的 JavaScript 文件中,使用 Mongoose 定义数据模型,以便在应用中操作和访问数据库中的数据。
// 导入mongoose const mongoose = require('mongoose'); const Schema = mongoose.Schema; // 使用Schema方法创建数据模型 const userSchema = new Schema({ account: { // 类型:字符串 type: String, // 必须:真 required: true }, password: { type: String, required: true } }); // 创建用户模型并导出 const User = mongoose.model('User', userSchema); module.exports = User;
运行程序 node xxx.js
app.listen(port, () => {
console.log(`应用程序正在监听端口 ${port}`);
});
数据库:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。