我正在学习reactjs和nodejs,在其他堆栈溢出成员的帮助下,我成功地创建了前端。现在我正在nodejs的后端工作。Nodejs也运行良好,但现在我所有的代码都在一个index.js文件中,我担心它会变得越来越大。
我只想知道如何从index.js中移除文件?就像。我有目录(添加,修改,删除列表),然后相同的产品,用户等。
我的路线是:
/add-category
/mod-category
/del-category
/categories
/add-user
/mod-user
/del-user
/users
/add-product
/mod-product
/del-product
/products它们都工作得很好,只是在一个index.js文件中。如何将产品路由转移到products.js中,然后将产品类别转移到categories.js中,将用户转移到users.js中?
关于我的index.js是如何的,我的一些代码如下:
const express = require("express");
const app = express();
const mysql = require("mysql");
const cors = require("cors");
app.use(cors());
app.use(express.json());
const db = mysql.createConnection({
user: "root",
host: "localhost",
password: "",
database: "shop",
});
app.get("/admin/categories", (req, res) => {
db.query("SELECT * FROM categories ORDER BY catg_name", (err, result) => {
if (err) {
console.log(err);
} else {
res.send(result);
}
});
});
app.put("/admin/mod-category", (req, res) => {
const id = req.body.id;
const name = req.body.name;
const description = req.body.description;
const status = req.body.status;
db.query(
"UPDATE categories SET catg_name = ?, catg_description = ?, catg_status = ? WHERE catg_id = ? LIMIT 1",
[name, description, status, id],
(err, result) => {
if (err) {
console.log(err);
} else {
res.send(result);
}
}
);
});
app.delete("/admin/del-category/:id", (req, res) => {
const id = req.params.id;
db.query(
"DELETE FROM categories WHERE id = ? LIMIT 1",
[id],
(err, result) => {
if (err) {
console.log(err);
} else {
res.send(result);
}
}
);
});
app.listen(3001, () => {
console.log("Server is running on port 3001");
});任何帮助都是致命的。
谢谢。
发布于 2022-05-25 05:00:52
您可以为每个集合创建一个单独的文件。
类别路由文件
const router = require('express').Router();
router.get('/categories/:id', (req, res) => {
// get a category by ID
});
router.post('/categories', () => {
// create a category
});
module.exports = router;然后是产品的文件
const router = require('express').Router();
router.get('/products/:id', (req, res) => {
// get a product by id
});
router.post('/products', () => {
// create a product
});
module.exports = router;之后,将导出的路由器导入索引文件,并与app.use()函数一起使用它们
const express = require('express');
const productsRouter = require("./src/productsRouter");
const categoriesRouter = require("./src/categoriesRouter");
const app = express();
app.use(productsRouter);
app.use(categoriesRouter);发布于 2022-05-25 05:23:33
在这种情况下,可以将每个端点操作定义为一个文件函数。
您可以使用所需的任何函数来执行categories.js文件。
const database = require('./connection.js')
const CATEGORIES = {
edit_categories : (req, res) => {
...
},
delete_categories : (req, res) => {
...
},
find_categories : (req, res) => {
...
}
}
module.exports = CATEGORIES另外,您可以定义您的connection.js
const mysql = require("mysql");
const database = () =>{
const db = mysql.createConnection({
user: "root",
host: "localhost",
password: "",
database: "shop"
});
return db;
}
module.exports = database();然后把它全部使用
const express = require("express");
const app = express();
const cors = require("cors");
const CATEGORIES = require('./categories.js');
app.use(cors());
app.use(express.json());
app.get("/admin/categories", CATEGORIES.find_categories );
app.put("/admin/mod-category", CATEGORIES.edit_categories );
app.delete("/admin/del-category/:id", CATEGORIES.delete_categories );
app.listen(3001, () => {
console.log("Server is running on port http://127.0.0.1:3001");
});显然,有许多不同的方式来构造您的项目(您可以通过这种方式分离路线、建模和视图)
https://stackoverflow.com/questions/72372000
复制相似问题