首页 > 解决方案 > 如何将 expressJS 服务器代码拆分为不同的文件

问题描述

这只是我的快递服务器的一部分。我想将代码拆分为不同的文件。

import express from 'express'
const app = express()

app.get('/import', async (req, res) => {
  var fs = require('fs')

  fs.createReadStream('./src/data.csv')
    .pipe(parse({
      delimiter: ',',
      skip_lines_with_error: true
    }))
    .on('error', function (err) { console.log(err) })
    .on('data', async function (row) {
      // do a lot of stuff here
    })

  res.status(200)
})

在这种情况下,应该从另一个文件导入导入,但我不知道该怎么做

助手/import.js

export const import = (req, res) => {
  var fs = require('fs')

  fs.createReadStream('./src/data.csv')
    .pipe(parse({
      delimiter: ',',
      skip_lines_with_error: true
    }))
    .on('error', function (err) { console.log(err) })
    .on('data', async function (row) {
      // do a lot of stuff here
    })

  res.status(200)
}

服务器.js

import express from 'express'
const app = express()

app.get('/import') // <-- ?? 

我如何在这里获得异步功能?

标签: javascriptexpress

解决方案


所以你基本上想把路由放在不同的文件中。

我倾向于创建一个包含我所有“路线”的文件夹。

让我们以 import.js 为例。文件如下所示:

const express = require('express');
const router = express.Router();

router.get('/', (req, res) => {
  var fs = require('fs')

  fs.createReadStream('./src/data.csv')
    .pipe(parse({
      delimiter: ',',
      skip_lines_with_error: true
    }))
    .on('error', function (err) { console.log(err) })
    .on('data', async function (row) {
      // do a lot of stuff here
    })

  res.status(200)
});

module.exports = router;

然后你的 server.js 将实现它......

const importRouter = require("./helper/import.js");

app.use('/import', importRouter);

推荐阅读