【问题标题】:Cannot GET /api/tasks无法获取 /api/tasks
【发布时间】:2017-10-19 07:47:39
【问题描述】:

每次我打电话:http://localhost:3000/api/tasks 都会收到无法获取 /api/tasks

我的 server.js

var express = require('express');
var path = require('path');
var BodyParser = require('body-parser');

var index = require('./routes/index');
var tasks = require('./routes/tasks');

var port = 3000;

var app = express();

//View Engine
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.engine('html', require('ejs').renderFile);

// Set Static Folder
app.use(express.static(path.join(__dirname, 'client')));

// Body Parser MW
app.use(BodyParser.json());
app.use(BodyParser.urlencoded({extended: false}));

app.use('/', index);
app.use('api', tasks);

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

我还在学习。提前谢谢你

tasks.js

var express = require('express');
var app= express();
var mongojs = require('mongojs')
var db = mongojs('mongodb://<user>.:<****>@ds125365.mlab.com:25365/mytasklist_wafalme', ['tasks'])

// Get All Tasks
app.get('/tasks', function(req, res, next){
db.tasks.find(function(err, tasks){
    if(err){
        res.send(err);
    }
    res.json(tasks);
 });
});

// Get Single Tasks
app.get('/tasks/:id', function(req, res, next){
db.tasks.findOne({_id: mangojs.ObjectId(req.params.id)}, function(err, task){
    if(err){
        res.send(err);
    }
    res.json(task);
 });
});
module.exports = app;

我已将在路由文件夹中运行的 task.js 文件与 index.js 一起附加

【问题讨论】:

  • 请向我们展示您的 ./routes/tasks.js 文件
  • 你不应该使用app.use('/api', tasks);吗?正如@AnuratChapanond 提到的,请添加您的任务路由文件。

标签: javascript json node.js express body-parser


【解决方案1】:

使用绝对路由来定义 API 路由上下文:

app.use('/', index);
app.use('/api', tasks);

始终在路线的开头包含正斜杠 (/)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-31
    • 2021-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 2022-01-10
    相关资源
    最近更新 更多