【问题标题】:ERR_EMPTY_RESPONSE when saving Mongoose model [closed]保存猫鼬模型时的 ERR_EMPTY_RESPONSE [关闭]
【发布时间】:2014-01-27 07:15:04
【问题描述】:

我正在使用 Mongoose 和 Express.js 来制作一个简单的待办事项列表应用程序。当我从表单发布时,我想保存列表项并在下一页上呈现一条消息。 (这稍后将被重定向替换。)Chrome 中的页面将停止显示,而不是显示消息,直到它最终显示

没有收到数据
无法加载网页,因为服务器未发送数据。
重新加载此网页。
按重新加载按钮重新提交加载页面所需的数据。
错误代码:ERR_EMPTY_RESPONSE

火狐说The connection to the server was reset while the page was loading.

我的路线是这样的:

exports.post = function(req, res) {
    var Item = require('../models/Item')

    new Item({
        content: req.body.content
    }).save(function(){
        res.send('item saved')
    })
}

我也试过了:

var item = new Item({
    content: req.body.content
})

item.save(function(){
    res.send('item saved')
})

做同样的事情。

我的模型如下所示:

var mongoose = require('mongoose')

var ItemSchema = new mongoose.Schema({
    content: String
})

var Item = mongoose.model('Item', ItemSchema)
module.exports = Item

如何让保存中的函数执行?

编辑: 这是客户端代码:

layout.jade

doctype html
html
  head
    meta(charset='utf-8')
    title Listocracy
  body
    block content

index.jade

extends layout

block content
  h1 Listocracy

  form(method='post', action='/item')
    input(type='text', name='content')
    button(type='submit') Add Item

如果我将res.send 拉出保存功能,它将按预期打印文本。我认为问题在于保存功能。

【问题讨论】:

  • 我忘记连接到 MongoDB。

标签: javascript node.js mongodb express mongoose


【解决方案1】:

试试这个方法:

(new Item({
    content: req.body.content
})).save(function(){
    res.send('item saved')
});

更好的方式:

var item = new Item({
    content: req.body.content
});

item.save(function(err){
    if(!err)
       res.send('item saved')
    // else log and send error message
});

【讨论】:

  • 我得到500 TypeError: undefined is not a function 不确定他们指的是哪个函数,因为所有内容都是链接的,但是拆分它会带来 ERR_EMPTY_RESPONSE 问题。
  • 将第二个更改为(item).save(...)。它现在为该行显示500 TypeError: object is not a function。是否将 (item) 作为函数读取?
  • @Eva 查看编辑后的答案
  • @Eva 显示你的客户端代码
  • @Eva 这个错误是发生在客户端还是服务器端?
猜你喜欢
  • 2020-09-05
  • 2015-01-14
  • 1970-01-01
  • 1970-01-01
  • 2016-01-21
  • 2016-06-29
  • 2015-05-03
  • 2021-12-04
相关资源
最近更新 更多