JS模块拆分?

在使用vue的过程中,mock了一个本地服务器接口,代码写在了build/devserver.js里面,现在我想把模拟的这个接口给单独拆分为一个文件,请问应该怎么写?小白一枚,对nodejs模块化还不是很理解,部分mock的接口代码如下:

var app = express()
var bodyParser = require('body-parser')
var multer = require('multer')
var upload = multer()

app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended: true}))
// CORS
var allowCrossDomain = function (req, res, next) {
  res.header('Access-Control-Allow-Origin', 'http://localhost:8080')
  res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE')
  res.header('Access-Control-Allow-Headers', 'Content-Type, X-Token')
  res.header('Access-Control-Allow-Credentials', 'true')
  next()
}
app.use(allowCrossDomain)



// mock localhost api
var apiRoutes = express.Router()
// login api;
const userAccountList = ['100000', '100001', '100002', '100003']
apiRoutes.post('/user/login', upload.array(), function (req, res) {
  if (userAccountList.indexOf(req.body.account) < 0){
    return res.json({
      code: 50000,
      msg: '账号或密码错误,请重新输入'
    });
  }
}
app.use('/api', apiRoutes);

我试了一下单独把这些代码独立出为一个文件,发现会报错,请问应该怎么写?

阅读 3.2k
2 个回答
export const apiRoutes = express.Router()
// login api;
const userAccountList = ['100000', '100001', '100002', '100003']
apiRoutes.post('/user/login', upload.array(), function (req, res) {
  if (userAccountList.indexOf(req.body.account) < 0){
    return res.json({
      code: 50000,
      msg: '账号或密码错误,请重新输入'
    });
  }
}

这块代码单独拿出来为一个模块,把apiRoutes暴漏出来。在上面的文件import进来使用。不是这样么?

//单独一个文件写下面的代码

var express = require('express');
var apiRoutes = express.Router();

const userAccountList = ['100000', '100001', '100002', '100003'];

apiRoutes.post('/login', upload.array(), function (req, res) {
  if (userAccountList.indexOf(req.body.account) < 0){
    return res.json({
      code: 50000,
      msg: '账号或密码错误,请重新输入'
    });
  }
}

module.exports = apiRoutes;

然后,再devserver.js里面删除这块的代码,再用require的方式引入,

var apiRoutes = require("../routes/apiRoutes");

还有一个,就是你得路由过去:

app.use('/routes', apiRoutes);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题