2016-05-19 15 views
-1

nodejsを使用してログインアプリケーションを作成しようとしています。 しかし、私はそれを実行した後。 TypeError:express.Routerは関数ではありません。 私のexpressは最新バージョン4.13.4です。誰か助けてくれますか?ここにコードがあります。なぜ "TypeError:express.Routerは関数ではありません"

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; 
}; 
+0

エクスプレスライブラリを含めるのを忘れていませんか? –

+0

新しいルータインスタンスを取得するには、 'Router()'メソッドを呼び出す必要があります。しかし、これをインポートするモジュールのコードを投稿してもよろしいですか? –

答えて

1

私は、エクスプレスライブラリを含める必要はありません。

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

+0

ああ神。ありがとう。事故でそれを削除= = –

0

VARのAPI = express.Router()です。

か、このコードを試してください:あなたはより多くのHTTPメソッドに「/サインアップ」ルートを追加することができますが、ルータのメソッドを呼び出す前に、急行モジュールを必要とする必要が

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; 
0

最初のrequire文としてrequire( 'http')またはrequire( 'https')を追加してみてください。

0

私はvar express = express()というエラーを返しました。機能ではありません。 expressディレクトリでいくつかのspelunkingをした後、サンプルコードでhttpまたはhttpsが最初に必要であることがわかりました。したがって、1つ(おそらく両方)を1番目(および2番目)のファイルインポートとして追加します。

0

var api = express.Router();

関連する問題