如何将expressJS服务器代码拆分为不同的文件

时间:2019-05-27 13:34:14

标签: javascript express

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

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 应该从另一个文件导入,但是我不知道该怎么做。

helper / 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)
}

server.js

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

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

如何在此处获取异步功能?

1 个答案:

答案 0 :(得分:1)

因此,您基本上想将路由放入其他文件中。

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

我们以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);