2016-05-11 13 views
0

nodejsでapiを作成しようとしています。ノードJsルーティングが機能しない

マイserver.jsファイルのI /ログインページを開いたときにindex.jsファイル

var express = require('express'); 
var router = express.Router(); 

var auth = require('./auth.js'); 
var meetings = require('./meetings.js'); 
var user = require('./users.js'); 

/* 
* Routes that can be accessed by any one 
*/ 
router.post('/login', auth.login); 


/* 
* Routes that can be accessed only by authenticated & authorized users 
*/ 
router.get('/api/admin/users', user.getAll); 
..... 
..... 

module.exports = router; 

を持つ私の/ルートdirは今、私は次のエラー

を取得

var http = require('http'), 
    path = require('path'), 
    async = require('async'), 
    socketio = require('socket.io'), 
    express = require('express'), 
    session = require('express-session'), 
    logger = require('morgan'), 
    bodyParser = require('body-parser');  

var app = express(); 
var server = http.createServer(app); 
var io = socketio.listen(server); 
    app.use(logger('dev')); 
    app.use(bodyParser.json()); 

    app.all('/*', function(req, res, next) { 
    // CORS headers 
    res.header("Access-Control-Allow-Origin", "*"); // restrict it to the required domain 
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS'); 
    // Set custom headers for CORS 
    res.header('Access-Control-Allow-Headers', 'Content-type,Accept,X-Access-Token,X-Key'); 
    if (req.method == 'OPTIONS') { 
     res.status(200).end(); 
    } else { 
     next(); 
    } 
    }); 
    app.all('/api/*', [require('./middlewares/validateRequest')]); 
    //app.use(express.static(path.resolve(__dirname, 'client'))); 

    app.use('/', require('./routes')); 

    // If no route is matched by now, it must be a 404 
    app.use(function(req, res, next) { 
    var err = new Error('Not Found'); 
    err.status = 404; 
    next(err); 
    });   

var messages = []; 
var sockets = []; 

...... 
server.listen(process.env.PORT || 3000, process.env.IP || "0.0.0.0", function(){ 
    var addr = server.address(); 
    console.log("Meeting Panel listening at", addr.address + ":" + addr.port); 
}); 

に従っている

Error: Not Found 
    at /home/ubuntu/workspace/server.js:46:15 
    at Layer.handle [as handle_request] (/home/ubuntu/workspace/node_modules/express/lib/router/layer.js:95:5) 
    at trim_prefix (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:312:13) 
    at /home/ubuntu/workspace/node_modules/express/lib/router/index.js:280:7 
    at Function.process_params (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:330:12) 
    at next (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:271:10) 
    at /home/ubuntu/workspace/node_modules/express/lib/router/index.js:618:15 
    at next (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:256:14) 
    at Function.handle (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:176:3) 
    at router (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:46:12) 
+0

server.jsの46行目は何ですか? – JimmyRare

+0

404コードのエラー - > var err =新しいエラー( 'Not Found'); - –

答えて

1

/loginのあなたのルートは、POSTメソッドで定義されています。あなたが行っていることを前提としたブラウザからそれを開くには、router.get('/login'...を定義する必要があります。あなたはGETメソッドに定義された/loginルートを持っていないと思うので、テストのための他の良いオプションは/api/admin/usersです。

1

ブラウザでhttp://example/loginを開くだけであれば、取得リクエストになります。この場合は、投稿/ログインが取得/ログインできない経路を見つけられません。

関連する問題