Nodemon 只运行索引 .js 文件

nodemon runs only index.js file

提问人:gorsahakyan10 提问时间:11/14/2023 更新时间:11/14/2023 访问量:39

问:

在我的package.json文件中的脚本部分写着“start”:“nodemon index.js”,但是在我的项目中还有其他文件处理来自客户端的请求,问题是只有文件中定义的那些路由才能工作索引.js,为什么会这样以及如何解决?

我尝试将其他文件的代码放入函数中,然后导出这些函数并将它们导入到 index.js 文件中并调用它们。在那之后他们才开始工作,但在我看来,这是非常错误的。我希望其他文件中的代码也能工作,但不要将其导入索引 .js 文件中,因为在我看来,随着时间的推移,索引 .js 文件会变得非常大

import express from "express";
const app = express();
const PORT = 8000;
import authorization from "./authorization.js";
import { connect_to_mysql } from "./connect_to_mysql.js";
import registration from "./registration.js";


app.use("/public", express.static("public"));

(async function() {
        await connect_to_mysql();
        await authorization();
        await registration();
        await upload();
    
        app.listen(PORT, () => console.log("server started"));
})()

export { app, express };
节点 .js Express Nodemon

评论

0赞 Sharp Dev 11/14/2023
你的问题不清楚,从表面上看,你不明白app.use方法的用法。Express 旨在通过路由器功能来处理这个问题......此时,您可以从不同的路由文件控制不同的路由...通常人们会分割中间件并将其放在不同的文件夹(可能是控制器)中......然后路由文件将导入中间件,索引 .js 可以只导入路由并将这些路由与应用程序实例一起使用。

答:

0赞 Alexxino 11/14/2023 #1

在脚本中,您只能使用文件运行,而不使用其他文件。最正确的方法是使用 express 类生成其他端点(位于不同的文件中)或将函数从其他文件导出到 。此文件是唯一应该运行的文件,但您可以重构代码,以便将其划分为不同的文件。npmnodemonindex.jsRouterindex.js

0赞 Tal Rofe 11/14/2023 #2

在使用 ESModules 时,您有起点(例如文件),并且您要使用的每个文件都必须导出某些内容并导入到某个地方。否则,该文件将未被使用。index.js

如果您不想使文件过载,只需在单独的文件中创建一个快速路由器:index.js

import express from "express";

const router = express.Router();

router.post("/example", (req, res) => res.send());


export default router;

然后使用这个路由器(在文件中):index.js

import express from "express";

import router from "./routers/example";

const app = express();

app.use("/example", router);