我已经尝试了我在 s/o 上找到的所有答案,我确定我一定遗漏了一些东西。什么对我没有错误而是给了我一个 404。我尝试了来自Node.js 中组织路由的答案,strongloop 的路由分离模式,来自如何在 Express 中的多个文件中包含路由处理程序的答案?, 遇到类似Router.use 需要中间件功能的错误?但这些答案都没有奏效。在 Express 4.0中无法将路由拆分为单独的文件的答案不会出错,但也会出现 404。似乎每个答案都有不同的语法和风格,也许是我混合和匹配不正确?
现在我的 /routes/persons.js 有这个模式:
var express = require('express');
var persons = express.Router();
persons.route('/persons/:user_id')
.put(function (req, res, next) {
// etc
});
module.exports = persons;
Run Code Online (Sandbox Code Playgroud)
在我的 server.js 文件中,我有:
var persons = require('./routes/persons');
app.use('/persons', persons);
Run Code Online (Sandbox Code Playgroud)
这种组合不会引发错误,但也不会执行任何操作。我尝试将端点添加到 server.js 行:
var persons = require('./routes/persons');
app.get('/persons/:user_id', persons.addpersons);
Run Code Online (Sandbox Code Playgroud)
并将 people.js 剥离为仅导出功能:
exports.addpersons = function (req, res, next) { …Run Code Online (Sandbox Code Playgroud) 我目前是Express和失败方式的学生.
我目前的头痛是PUT不是PUT-ting.我的应用程序有一个我需要在用户第一次登录时上传的数据.我想在之后它会更快,因为我只能上传已更改的内容.这个理论并没有那么顺利.
步骤是:
我把2和4分成两块,因为当我把它分成两块时,由于某种原因,Mongoose开始扔掉他的装.除了现在,它实际上并没有在步骤4,甚至更晚的时候用户编辑任何内容(通过应用程序中的表单).这就像它停止听,或者其他什么.
这是值模式的样子(截断,因为它是巨大的):
var ValueSchema = new Schema({
user_id: {
type: String,
required: true,
unique: true
},
base: [{
type: String,
required: true
}],
value1: [ String ],
value2: [ String ],
value3: [ String ],
value4: [ String ]
});
Run Code Online (Sandbox Code Playgroud)
这是GETting和PUTting的部分:
// ------------------ FORM VALUES
router.route('/values/:user_id')
// create
.post(function(req, res) {
var task = req.body;
var value = new Value(task);
value.save(function(err) {
if (err) {
res.json(err);
} else {
res.write("success");
}
});
}) …Run Code Online (Sandbox Code Playgroud)