簡體   English   中英

為什么“TypeError:express.Router 不是函數”

[英]Why “TypeError: express.Router is not a function”

嘗試使用 nodejs express 制作登錄應用程序。 但是在我運行它之后。 它顯示 TypeError: express.Router is not a function。 我的快遞是最新的4.13.4版本。 任何人都可以幫助我嗎?這是代碼。

var User = require('../modules/user');
var config = require('../../config');

var secretKey = config.secretKey;

module.exports = function(app,express){
    var api = express.Router;
    api.post('/signup', function(req,res){
        var user = new User({
            name: req.body.name,
            username: req.body.username,
            password: req.body.password
        });

        user.save(function(err){
            if(err){
                res.send(err);
                return;
            }

            res.json({ message: 'user has been created'});
        })
    });

    return api;
};

我看不到包含快遞庫的要求。

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

還記得做

$ npm install express --save

安裝它。

這是參考

http://expressjs.com/en/4x/api.html

http://expressjs.com/en/starter/installing.html

它應該是var api = express.Router();

var api = express.Router();

或試試這個代碼:

var router = require('express').Router(),
    User = require('../modules/user'),
    config = require('../../config');

router
    .post('/signup', function (req, res, next) {
        var user = new User(req.body);    

        user.save(function (err) {
            if (err) res.send(err);
            else res.json({message: 'user has been created'});
        })

    });

module.exports = router;

在調用 Router 方法之前,您需要 require express 模塊,這樣您就可以向“/signup”路由添加更多 HTTP 方法。

var express = require('express');    
var User = require('../modules/user');
var config = require('../../config');
var api = express.Router();
var secretKey = config.secretKey;

module.exports = function(api) {
  api.route('/signup')
   .post(function(req, res) {
     var user = new User({
       name: req.body.name,
       username: req.body.username,
       password: req.body.password
     });

     user.save(function(err) {
      if (err) res.send(err);

      res.json({ message: 'user has been created'});
    });
  });
};

嘗試添加 require('http') 或 require('https') 作為第一個 require 語句。

我遇到了var express = express()返回錯誤的問題:不是函數。 在 express 目錄中進行了一些探索后,我看到示例代碼首先需要 http 或 https。 因此,添加一個(可能兩個)作為第一個(和或第二個)文件導入。

const express = require('express');
const mongoose = require('mongoose');

const router = express.Router();
router.get('/', (req, res)=>{
    res.send('Course Controller');
});

module.exports = router;

寫 npm i express -s

我試過了,它對我有用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM