2016-04-26 95 views
0

在快速應用程序中設置restful API時遇到了一些麻煩。快速路由錯誤無法獲取/ api /名稱

這裏是我的app.js:

var express = require('express'), 
app = express(), 
bodyParser = require('body-parser'), 
methodOverride = require('method-override'); 
routes = require('./routes'), 
api = require('./routes/api'), 
port = process.env.PORT || 3000; 

app.use(express.static(__dirname + '/public')); 
app.use(bodyParser.json()); 
app.use(methodOverride()); 
app.use(bodyParser.urlencoded({extended: true})); 

// Page Routes 
app.get('/', routes.index); 
app.get('/partials/:filename', routes.partials); 

// // API Routes 
app.get('/api/name', api.name); 

app.listen(port, function() { 
    console.log('Listening on port ' + port); 
}); 

在/routes/api.js我有以下測試功能:

exports.name = function (req, res) { 
    res.json({ 
     name: 'Test' 
    }); 
}; 

目前我得到以下錯誤,當我去http://my_ip/api/name 不能GET/API /名稱

任何想法?

謝謝

+1

你會得到什麼,如果你'控制檯.LOG(api.name)' app.js – uzaif

+0

@uzaif我得到:[Function]。函數名稱()似乎工作正常。與它的路徑有關 – UltraViolent

+0

'api(app);'在app.js中試試這個,檢查它是否工作? – uzaif

回答

1

以下代碼適用於我。我認爲你的路線包有一些問題。你能分享'路線'包和文件結構的代碼嗎?

app.js

var express = require('express'), 
app = express(), 
routes = require('./routes'); 
api = require('./routes/api'), 
port = process.env.PORT || 3000; 

// Page Routes 
app.get('/', routes.index); 

// API Routes 
app.get('/api/name', api.name); 

app.listen(port, function() { 
    console.log('Listening on port ' + port); 
}); 

/routes/api.js

exports.name = function (req, res) { 
    res.json({ 
    name: 'Test' 
    }); 
}; 

/routes.js

exports.index = function (req, res) { 
    res.json({ 
    name: 'Index' 
    }); 
}; 
+0

謝謝,我剝離了我的應用程序只是這一點,它現在的作品。所以我會後退工作,找出我的主應用中出錯的地方。 – UltraViolent