gpt4 book ai didi

node.js - put 路由在 Node.js 中不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 02:32:07 25 4
gpt4 key购买 nike

我的 PUT 路线有问题,但我不知道到底是什么问题。

首先我创建了我的架构:

var databaseSchema = mongoose.Schema({
date: type {
type: Date,
{
_id: String,
});

var Db = mongoose.model('Db', databaseSchema);

创建 post 方法后:

app.post('/db', function(req, res) {
var body = req.body,
database = new Db(body);
database.save(function (err) {
if (err) {
console.log('err', err);
res.status(500).json(err);
return;
}
res.status(200).json('ok');
console.log('Success');

在我的 INDEX 中,我使用 Ajax 创建了一个 GET,以在 HTML 中显示数据:

$.ajax({
type: 'GET',
url: host + '/db',
success:function(datas){

datas.forEach (function (data) {
var HTML = [];

HTML.push('<tr class="datas">');
HTML.push('<td data-id="' + data._id + '"/> </td>');
HTML.push('</tr>');

$('tbody').append(HTML.join(''));

我在索引中创建了一个日期,并尝试将其与 ID 一起发送到我的数据库,为此我使用 PUT 方法,如下所示:

                           $.ajax({
type: 'PUT',
url: host + '/db',
data: {
_id: update.attr('data-id'),
date: $('.date').val();
},
sucess:function (success) {
alert('ok');
},
error:function(err) {
console.log(err);
}
});

最后我在我的 app.put 路线上更新了她,如下所示:

app.put('/db', function(req, res) {
Reserva.findById(req.param('date'), function(err, database){
database.save(function (req, res) {
if (err) {
console.log('err', err);
}
res.status(200).json('ok');
console.log('Update');
});
});
});

问题是 put 不起作用,我没有发现错误,有人能给我一盏灯吗?

最佳答案

许多浏览器(甚至现代浏览器)不支持 GETPOST 之外的任何请求方法。为了让这些发挥作用,您必须做一些事情:

快捷应用程序:

  1. 安装方法覆盖包。
  2. 在您的应用中需要它:var methodOverride = require('method-override');
  3. 在中间件中添加:app.use(methodOverride('_method'));

客户端JS:修改您的 AJAX 调用以在数据中包含 _method 字段。

$.ajax({
type: 'POST', // Change this to a method everyone understands
url: host + '/db',
data: {
_id: update.attr('data-id'),
date: $('.date').val(), // <- Remove the semicolon that was here
_method: 'PUT'
},
// ...
});

关于node.js - put 路由在 Node.js 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25748962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com