我將編碼作為一種愛好,目前正在開發一個新的 NodeJS 專案。以我有限的知識,我覺得使用 ES 模塊是未來(如果我錯了,請糾正我)。因此,我想將我擁有的一些 CommonJS 腳本重新撰寫到 ES 模塊中。
我被困在試圖轉換它的下面一行:(
require('./app/routes/routes')(app)
我不明白“(app)”部分最后做了什么)。
路線.js:
module.exports = app => {
const recipe = require('../controllers/recipe-controller.js');
var router = require('express').Router();
// Create a new Recipe
router.post('/recipe', recipe.create);
app.use('/api/recipes', router);
};
server.js:
import express from 'express'
import db from './app/models/index'
const app = express();
app.get('/', (req, res) => {
res.json({ message: 'Welcome to bezkoder application.' });
});
require('./app/routes/routes')(app);
const PORT = process.env.PORT || 8080;
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}.`);
});
uj5u.com熱心網友回復:
這一行:
require('./app/routes/routes')(app)
正在匯入一個函式,然后呼叫它。它在邏輯上與以下內容相同:
const init = require('./app/routes/routes');
init(app);
因此,要將其轉換為 ESM,您需要更改您的路由模塊以匯出一個命名函式。然后,您可以匯入該命名函式,然后呼叫它(傳遞app給它)。
路由.js
import express from 'express';
import recipe from '../controllers/recipe-controller.js';
export function init(app) {
// Create a new Recipe
const router = express.Router();
router.post('/recipe', recipe.create);
app.use('/api/recipes', router);
}
服務器.js
import express from 'express'
import db from './app/models/index'
import init from './app/routes/routes';
const app = express();
app.get('/', (req, res) => {
res.json({ message: 'Welcome to bezkoder application.' });
});
init(app);
const PORT = process.env.PORT || 8080;
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}.`);
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/443023.html
標籤:节点.js
