javascript - app.post 不是函数表达 Node

标签 javascript node.js express routes

我的所有路由都在 server.js 中,但我想将其模块化并放入一个名为 routes 的文件夹中。我在 routes 文件夹中创建了一个名为 apis.js 的文件,但当我这样做时,我得到了 TypeError: app.post is not a function

服务器.js:

var express    = require('express');
var app        = express();

var bodyParser = require('body-parser');
var urlencode = bodyParser.urlencoded({ extended: true});

app.use(express.static('public'));

var apis = require('./routes/apis');
app.use('/', apis);

module.exports = app;

apis.js:

  module.exports = function(app){

  app.get('/', function(req, res) {
    res.send('OK');
  });

  app.post('/idea', function(req, res) {
  ...
  });

};

此外,在 server.js 中使用 module.exports = app 很重要,因为我要运行测试并且每次都需要一个应用程序实例。

我错过了什么?

最佳答案

更好的方法:-

服务器.js

var express    = require('express');
var app        = express();

var bodyParser = require('body-parser');
var urlencode = bodyParser.urlencoded({ extended: true});

app.use(express.static('public'));

var apis = require('./routes/apis');
app.use('/', apis);

module.exports = app;

apis.js :-

var router = require('express').Router();
router.post('/url',function(req,res,next){
 //your code 
})

module.exports = router

关于javascript - app.post 不是函数表达 Node ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38758198/

相关文章:

javascript - 在 Javascript 中用另一个项目替换数组中的一个项目

javascript - 如何将数据从 Node/Express 服务器传递到客户端 (JavaScript),同时允许净化 HTML 但防止 XSS?

node.js - Multer 未填充 req.body 和 req.file

javascript - 如何使 Javascript 代码分别为每个元素工作,以使用相同的 Javascript 代码在 HTML 中创建多个副本

javascript - 我想让 2 个 html 选择标签依赖。我该怎么做?

javascript - 如何检查所有箭头函数是否为真?

node.js - 有效的 mongodb + Mongoose 。架构设计

javascript - NodeJS - ES6 - 扩展类错误以返回我自己的类型作为错误响应的一部分

node.js - 客户服务软件的聊天服务器架构

express - Passportjs 成功回调从未调用过