nodemon只运行index.js文件

6g8kf2rb  于 11个月前  发布在  Node.js
关注(0)|答案(2)|浏览(123)

在我的package.json文件中的脚本部分有写“start”:“nodemon index.js”,但在我的项目中也有其他文件处理来自客户端的请求,问题是只有那些在文件中定义的路由工作index.js,为什么会这样,如何修复它?
我尝试将其他文件的代码放入一个函数中,然后导出这些函数并将其导入index.js文件中并调用它们。只有在这之后,它们才开始工作,但在我看来这是非常错误的。我希望其他文件中的代码也能工作,但不将其导入index.js文件,因为在我看来,随着时间的推移,index.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 };

字符串

tyg4sfes

tyg4sfes1#

在您的npm脚本中,您只使用nodemon运行index.js文件,而不运行其他文件。(位于不同的文件中)或从其他文件导出函数到index.js。此文件是唯一应该运行的文件,但是你可以重构你的代码,把它分成不同的文件。

7nbnzgx9

7nbnzgx92#

当使用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);

相关问题