Express.js CRUD –在Chrome中删除后GET挂起

帮派

我正在玩一个非常简单的express.js 4.0.0猫鼬CRUD应用程序/ API。我正在使用邮递员进行测试。我通过发布在数据库中创建了一些条目。现在,当我尝试删除其中一个时,它似乎可以正常工作,但此后第一次使用GET时,邮递员会挂起。在浏览器中也是如此。它只是一直显示加载微调器。问题不在于猫鼬,因为当我使用GET路由时,remove()起作用。

更新这似乎是chrome的问题(v。36.0.1985.125)在Firefox和Sarafi中有效。因此,也许这是一个缓存问题?我尝试像这里建议的那样在邮递员中设置标题,但这没有帮助。

这是代码:

var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser());
var router = express.Router();


/* 
UPDATE
Suspecting it is a caching issues in chrome, now using this middleware to prevent caching 
*/

router.use(function(req, res, next) {

  res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate');
  res.header('Expires', '-1');
  res.header('Pragma', 'no-cache');
  next();

});
/* UPDATE */

app.use('/', router);

router.get('/', function(req, res){
    res.send('Homepage');
});

var server = app.listen(3000, function(){
    console.log('Listening to port %d', server.address().port);
});

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var Schema = mongoose.Schema;
var BearSchema = new Schema({
    name: String
});
var Bear = mongoose.model('Bear', BearSchema);

router.route('/bears')
    .post(function(req, res){
        var bear = new Bear();
        bear.name = req.body.name;
        bear.save(function(err){
            if(err){
                res.send(err);
                return;
            }
            res.json({ message: 'Bear created' });
        });
    })
    .get(function(req, res){
        Bear.find(function(err, bears){
            if(err){
                res.send(err);
                return;
            }
            res.json(bears);
        });
    });

router.route('/bears/:bear_id')
    .delete(function(req, res){
        Bear.remove({
            _id: req.params.bear_id
        }, function(err, num){
            if(err){
                res.send(err);
                return;
            }
            if( num === 0 ){
                res.json({ message: 'Nothing deleted' });
                return;
            }
            res.json({ message: 'Successfully deleted' });
        });
    });
帮派

我在这里找到了解决此问题的方法:https : //github.com/strongloop/express/issues/2069它似乎是由Sophos Anti-Virus引起的错误。为了避免这种情况,您可以在Sophos的首选项中为有问题的网站禁用“网络保护”。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

删除CRUD RESTful API(Node.js,Express,Mongodb)中的错误

来自分类Dev

CRUD删除-React JS

来自分类Dev

通过Express.js与Google Cloud进行CRUD操作

来自分类Dev

CRUD 的 express.js API 端点最佳实践

来自分类Dev

Sails.js中的CRUD蓝图覆盖

来自分类Dev

Express JS中的路线

来自分类Dev

Express JS无法放置/删除

来自分类Dev

Express JS 不执行删除

来自分类Dev

如何在angular js中执行CRUD操作更新?

来自分类Dev

如何在angular js中执行CRUD操作更新?

来自分类Dev

协助Express App进行CRUD操作

来自分类Dev

在Express JS中传递参数

来自分类Dev

Vue.js Crud JavaScript?

来自分类Dev

CRUD - 在 Laravel 上删除

来自分类Dev

Win7 Express JS:“ Express”在cmd中无法识别

来自分类Dev

使用Express JS删除MongoDB文档

来自分类Dev

带有Express和CORS的Node.js在这么多呼叫后挂起

来自分类Dev

Express JS阻止GET /favicon.ico

来自分类Dev

GET请求响应express.js

来自分类Dev

Express.js 无法处理 GET 路由

来自分类Dev

如何在Express Node JS中获取删除请求的参数

来自分类Dev

在Hibernate中覆盖CRUD

来自分类Dev

如何安全删除使用yo(mean.js)构建的CRUD模块

来自分类Dev

Express.js中的默认路由

来自分类Dev

如何保护express.js中的路由?

来自分类Dev

将实例存储在Express JS会话中

来自分类Dev

在Express JS中从路由调用函数对象

来自分类Dev

限制Node JS Express中的api访问

来自分类Dev

请求挂在express.js中