/ /エクスプレス4.13 - node.js、express、routingと別ファイルでのルーティング

express 4.13 - node.js、express、routingと別ファイルでのルーティング

私はエクスプレスでのルーティングとpoblemを持っている4.13

ここにindex.jsファイルがあります:

var express = require("express");
var app = express();
var wagner = require("wagner-core");
var morgan = require("morgan");

app.use(morgan("combined"));

require ("./models")(wagner);

var api = require("./api");

app.use("/api/v1", api);


app.listen(3000, function() {
console.log("Server Started!!!");
});

そして、これはルートを持つファイルです:

var express = require("express");
// var status = require("http-status");

module.exports = function() {

var api = express.Router();

api.get("/category/id/:id", function(req,res){
console.log("TEST")
res.send("TEST");
});

}

私が訪問した後 http://localhost:3000/api/v1/category/id/123 ページだけでloadinと何も起こらない...誰が何が問題なのか知っていますか?

回答:

回答№1の場合は3

移動 var api = express.Router(); エクスポートされたオブジェクトから削除されます。

var express = require("express");
var api = express.Router();

api.get("/category/id/:id", function(req,res){
console.log("TEST")
res.send("TEST");
});

module.exports = api;

メインアプリケーションにすぐに使用できるルータモジュールをマウントする必要があるためです。

エクスポートされたオブジェクトは、ルートハンドラ自体である必要があります。


回答№2については2

以下は機能しますか?

var api = express.Router();

api.get("/category/id/:id", function(req,res){
console.log("TEST")
res.send("TEST");
});

module.exports = api;

回答№3の場合は0

私のコードで問題が見つかりました....私は "ルータを返しませんでした。

内部の機能は以下の通りです:

return api;