首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将CommonJS转换为ES模块

将CommonJS转换为ES模块
EN

Stack Overflow用户
提问于 2022-03-13 14:54:06
回答 1查看 2.5K关注 0票数 1

我将编码作为业余爱好,目前正在从事一个新的NodeJS项目。以我有限的知识,我有一种感觉,与ES模块的工作是未来(如果我错了,纠正我)。因此,我想重写一些我有到ES模块中的CommonJS脚本。

我被困在试图转换它的下面一行:require('./app/routes/routes')(app) (我不明白“(应用程序)”部分到底做了什么)。

routes.js:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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}.`);
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-13 15:01:31

这一行:

代码语言:javascript
复制
require('./app/routes/routes')(app)

是导入一个函数,然后调用它。这在逻辑上与以下几点相同:

代码语言:javascript
复制
const init = require('./app/routes/routes');
init(app);

因此,要将其转换为ESM,您需要更改路由模块以导出一个命名函数。然后您可以导入这个命名的函数,然后调用它(将app传递给它)。

routes.js

代码语言:javascript
复制
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);
}

server.js

代码语言:javascript
复制
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}.`);
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71457923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档