我试图创建一个函数,所以我不会一次又一次地使用相同的代码,但我一直得到内部错误。我得到数据,然后我得到内部错误,所以如果我改变一些我需要刷新页面是更新。我不明白为什么我得到错误。这是错误
获取http://localhost:3000/api/pages 500(内部服务器错误)
Object {data:"",status:500,config:Object,statusText:" Internal Server Error"}
代码:
function Get(some,that,res){
return some.find(function(err,that) {
if (!err) {
return res.send(that);
} else {
return res.send(500, err);
}
});
};
router.get('/pages', sessionCheck, function() {
Get(Page,pages,res);
});
更新:我可能做错了所以让我们从头开始。我怎么能创建一个这样做的函数,所以我不会一次又一次地重复使用相同的代码。
router.get('/pages', function(request, response) {
return Page.find(function(err, pages) {
if (!err) {
return response.send(pages);
} else {
return response.send(500, err);
}
});
});
这是我的完整代码
var express = require('express');
var router = express.Router();
var mongoose = require('mongoose');
var Page= require('../models/page.js');
var bcrypt = require('bcrypt-nodejs');
function Get(some,that,response){
return some.find(function(that,err) {
if (!err) {
return response.send(that);
} else {
return response.send(500, err);
}
});
};
router.get('/pages', sessionCheck, function(request,response) {
Get(Page,pages,response);
});
答案 0 :(得分:0)
如果您使用express,您的函数调用应该是:
function someGetFunc(req, res, next)
你有res作为第三个参数,所以这可能是问题。
现在你上面的Get函数是一个不接受params的匿名函数的内部函数,所以你传递给它的是未定义或引用全局作用域变量。
答案 1 :(得分:0)
路由器。 METHOD 将首先调用您的函数 sessionCheck 。然后,您需要在 sessionCheck 中调用next()来调用下一个函数,在该函数中您没有定义任何参数(通常您将定义 req,res )。 / p>
答案 2 :(得分:0)
好吧我修理它就像我不应该把功能留空所需的res,req
new Timer().scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
// Enter your code
}
}, 0, 20000);//put here time 1000 milliseconds=1 second