0

[我正在使用 express 作为节点]。

我遇到了一个将表单数据发布到其中的代码,index.js但它必须在另一个 javascript 文件中进行处理。我几乎在每一步都调试了原始代码,但此时我被卡住了。

以下是文件中的相关部分。

index.js

var express = require('express');
var router = express.Router();
const proctor = require('../controllers/proctor');

router.post('/myform', function(req, res, next) {
  console.log("hello");
  proctor.function1;
});
module.exports = router;

proctor.js(不是我写的)

exports.function1 = (req, res) => {
    console.log(req.body);
}

app.js

var indexRouter = require('./server/routes/index');
app.use('/', indexRouter);
module.exports = app;

因此,控制台显示“你好”,但没有显示req.body第二个 js 文件根本没有被调用。这proctor.js不是我的代码,我想我index.js可能需要导入才能让它工作。

文件树是

app.js
server
   controllers
      proctor.js
   routes
      index.js
4

2 回答 2

0

只需像这样用 proctor.function1 替换您的匿名函数

router.post('/myform', proctor.function1);

将监考人员更改为

module.exports = {
  function1: (req, res) => {
    console.log(req.body);
  }
}
于 2021-06-03T05:08:05.467 回答
0

作为结束问题的标志,因为原始回答者没有添加答案。

  1. const proctor = require('../controllers/proctor');导入文件导出的对象proctor.js。但在这种情况下,我们必须使用

    const proctor = require('../controllers/proctor.js');

    能够调用存在于proctor.js

  2. 我没有将参数传递给函数调用。所以,我必须做

router.post('/myform', function(req, res, next) {
  console.log("hello");
  proctor.function1(req,res,next);
});
于 2021-06-04T11:45:18.167 回答