Javascript ReferenceError:\在使用lodash对node.js中的json属性进行排序时未定义

Javascript ReferenceError:\在使用lodash对node.js中的json属性进行排序时未定义,javascript,json,node.js,lodash,Javascript,Json,Node.js,Lodash,我想对json的属性进行排序。我在某处读到关于使用lodash模块进行排序的方法。当我试图根据价格(这是我的json的属性之一)进行排序时,我得到了以下错误: server.js var express= require('express'); var bodyParser= require('body-parser'); var morgan = require('morgan'); var config=require('./config'); var app= express(); var

我想对json的属性进行排序。我在某处读到关于使用lodash模块进行排序的方法。当我试图根据价格(这是我的json的属性之一)进行排序时,我得到了以下错误:

server.js

var express= require('express');
var bodyParser= require('body-parser');
var morgan = require('morgan');
var config=require('./config');
var app= express();
var mongoose=require('mongoose');
var lodash= require('lodash');
var underscore= require('underscore');
//var User=require('./database/user')
mongoose.connect('mongodb://localhost:27017/db',function(err){
    if(err){
        console.log(err);
    }
    else{
        console.log("connected!");
    }
});
//res.json({message:"     " })

app.use(bodyParser.urlencoded({extended: true })); //if false then parse only strings
app.use(bodyParser.json());
app.use(morgan('dev'));//log all the requests to the console
var api=require('./app/routes/api')(app,express,underscore);
app.use('/api',api);
app.get('*',function(req,res){
    res.sendFile(__dirname + '/public/views/index.html');
});   // * means any route

app.listen(config.port,function(err){
    if(err){
        console.log(err);
    }
    else{
        console.log("The server is running");
    }
});
//module.exports = router;
var User= require('../models/user');
var Event=require('../models/event');
var config=require('../../config')

var secret=config.secretKey;

module.exports=function(app,express,underscore) {
    var api = express.Router();
    // app.use()

    api.post('/signup', function (req, res) {
        var user = new User({
            name: req.body.name,
            username: req.body.username,
            password: req.body.password
        });
        user.save(function (err) {
            if (err) {
                res.send(err);
                return;
            }
            res.json({
                message: 'User created!'
            });
        });

    });
    api.get('/users', function (req, res) {
        User.find({}, function (err, users) {
            if (err) {
                res.send(err);
                return;
            }
            res.json(users);
        });
    });

    api.post('/eventfeed', function (req, res) {
        var event = new Event({
            name: req.body.name,
            location: req.body.location,
            description: req.body.description,
            price: req.body.price,
            rating: req.body.rating
        });

        event.save(function (err) {
            if (err) {
                res.send(err);
                return;
            }
            res.json({
                message: 'Event created!'
            });
        });
    });
    api.get('/sortby_price',function(){
        var sorted = _.sortBy(Event, "price")
    });
    return api;
}
api.js

var express= require('express');
var bodyParser= require('body-parser');
var morgan = require('morgan');
var config=require('./config');
var app= express();
var mongoose=require('mongoose');
var lodash= require('lodash');
var underscore= require('underscore');
//var User=require('./database/user')
mongoose.connect('mongodb://localhost:27017/db',function(err){
    if(err){
        console.log(err);
    }
    else{
        console.log("connected!");
    }
});
//res.json({message:"     " })

app.use(bodyParser.urlencoded({extended: true })); //if false then parse only strings
app.use(bodyParser.json());
app.use(morgan('dev'));//log all the requests to the console
var api=require('./app/routes/api')(app,express,underscore);
app.use('/api',api);
app.get('*',function(req,res){
    res.sendFile(__dirname + '/public/views/index.html');
});   // * means any route

app.listen(config.port,function(err){
    if(err){
        console.log(err);
    }
    else{
        console.log("The server is running");
    }
});
//module.exports = router;
var User= require('../models/user');
var Event=require('../models/event');
var config=require('../../config')

var secret=config.secretKey;

module.exports=function(app,express,underscore) {
    var api = express.Router();
    // app.use()

    api.post('/signup', function (req, res) {
        var user = new User({
            name: req.body.name,
            username: req.body.username,
            password: req.body.password
        });
        user.save(function (err) {
            if (err) {
                res.send(err);
                return;
            }
            res.json({
                message: 'User created!'
            });
        });

    });
    api.get('/users', function (req, res) {
        User.find({}, function (err, users) {
            if (err) {
                res.send(err);
                return;
            }
            res.json(users);
        });
    });

    api.post('/eventfeed', function (req, res) {
        var event = new Event({
            name: req.body.name,
            location: req.body.location,
            description: req.body.description,
            price: req.body.price,
            rating: req.body.rating
        });

        event.save(function (err) {
            if (err) {
                res.send(err);
                return;
            }
            res.json({
                message: 'Event created!'
            });
        });
    });
    api.get('/sortby_price',function(){
        var sorted = _.sortBy(Event, "price")
    });
    return api;
}
错误

 ReferenceError: _ is not defined
        at c:\Users\MY LAPY\WebstormProjects\Main\app\routes\api.js:62:22
        at Layer.handle [as handle_request] (c:\Users\MY LAPY\WebstormProjects\Main\node_modules\express\lib\router\layer.js:95:5)
        at next (c:\Users\MY LAPY\WebstormProjects\Main\node_modules\express\lib\router\route.js:131:13)
        at Route.dispatch (c:\Users\MY LAPY\WebstormProjects\Main\node_modules\express\lib\router\route.js:112:3)
        at Layer.handle [as handle_request] (c:\Users\MY LAPY\WebstormProjects\Main\node_modules\express\lib\router\layer.js:95:5)
        at c:\Users\MY LAPY\WebstormProjects\Main\node_modules\express\lib\router\index.js:277:22
        at Function.process_params (c:\Users\MY LAPY\WebstormProjects\Main\node_modules\express\lib\router\index.js:330:12)
        at next (c:\Users\MY LAPY\WebstormProjects\Main\node_modules\express\lib\router\index.js:271:10)
        at Function.handle (c:\Users\MY LAPY\WebstormProjects\Main\node_modules\express\lib\router\index.js:176:3)
        at router (c:\Users\MY LAPY\WebstormProjects\Main\node_modules\express\lib\router\index.js:46:12)
        at Layer.handle [as handle_request] (c:\Users\MY LAPY\WebstormProjects\Main\node_modules\express\lib\router\layer.js:95:5)
        at trim_prefix (c:\Users\MY LAPY\WebstormProjects\Main\node_modules\express\lib\router\index.js:312:13)
        at c:\Users\MY LAPY\WebstormProjects\Main\node_modules\express\lib\router\index.js:280:7
        at Function.process_params (c:\Users\MY LAPY\WebstormProjects\Main\node_modules\express\lib\router\index.js:330:12)
        at next (c:\Users\MY LAPY\WebstormProjects\Main\node_modules\express\lib\router\index.js:271:10)
        at logger (c:\Users\MY LAPY\WebstormProjects\Main\node_modules\morgan\index.js:144:5)
    GET /api/sortby_price 500 12.021 ms - 1943
    GET /api/sortby_price 500 5.623 ms - 1943
    ReferenceError: _ is not defined
        at c:\Users\MY LAPY\WebstormProjects\Main\app\routes\api.js:62:22
        at Layer.handle [as handle_request] (c:\Users\MY LAPY\WebstormProjects\Main\node_modules\express\lib\router\layer.js:95:5)
        at next (c:\Users\MY LAPY\WebstormProjects\Main\node_modules\express\lib\router\route.js:131:13)
        at Route.dispatch (c:\Users\MY LAPY\WebstormProjects\Main\node_modules\express\lib\router\route.js:112:3)
        at Layer.handle [as handle_request] (c:\Users\MY LAPY\WebstormProjects\Main\node_modules\express\lib\router\layer.js:95:5)
        at c:\Users\MY LAPY\WebstormProjects\Main\node_modules\express\lib\router\index.js:277:22
        at Function.process_params (c:\Users\MY LAPY\WebstormProjects\Main\node_modules\express\lib\router\index.js:330:12)
        at next (c:\Users\MY LAPY\WebstormProjects\Main\node_modules\express\lib\router\index.js:271:10)
        at Function.handle (c:\Users\MY LAPY\WebstormProjects\Main\node_modules\express\lib\router\index.js:176:3)
        at router (c:\Users\MY LAPY\WebstormProjects\Main\node_modules\express\lib\router\index.js:46:12)
        at Layer.handle [as handle_request] (c:\Users\MY LAPY\WebstormProjects\Main\node_modules\express\lib\router\layer.js:95:5)
        at trim_prefix (c:\Users\MY LAPY\WebstormProjects\Main\node_modules\express\lib\router\index.js:312:13)
        at c:\Users\MY LAPY\WebstormProjects\Main\node_modules\express\lib\router\index.js:280:7
        at Function.process_params (c:\Users\MY LAPY\WebstormProjects\Main\node_modules\express\lib\router\index.js:330:12)
        at next (c:\Users\MY LAPY\WebstormProjects\Main\node_modules\express\lib\router\index.js:271:10)
        at logger (c:\Users\MY LAPY\WebstormProjects\Main\node_modules\morgan\index.js:144:5)
更改声明:

var underline=require('underline')

致:

var\=require('下划线')

更改声明:

var underline=require('underline')

致:

var\=require('下划线')

更改声明:

var underline=require('underline')

致:

var\=require('下划线')

更改声明:

var underline=require('underline')

致:



var\=require('下划线')

下划线
不是一回事
我更改了它。现在没有错误,但当我转到页面时,它会不断刷新。这一定是什么原因?对我来说听起来像是个新问题。不太可能是由您提供的代码引起的。参数的排序如下所示。对吗?
下划线
不是一回事
我改变了它。现在没有错误,但当我转到页面时,它会不断刷新。这一定是什么原因?对我来说听起来像是个新问题。不太可能是由您提供的代码引起的。参数的排序如下所示。对吗?
下划线
不是一回事
我改变了它。现在没有错误,但当我转到页面时,它会不断刷新。这一定是什么原因?对我来说听起来像是个新问题。不太可能是由您提供的代码引起的。参数的排序如下所示。对吗?
下划线
不是一回事
我改变了它。现在没有错误,但当我转到页面时,它会不断刷新。这一定是什么原因?对我来说听起来像是个新问题。不太可能是由您提供的代码引起的。参数的排序如下所示。对吧?我改了。现在没有错误,但当我转到页面时,它会不断刷新。这一定是什么原因?可能是一个新问题,正如@Kevin B所说,不太可能是由您提供的代码引起的。我改变了这个问题。现在没有错误,但当我转到页面时,它会不断刷新。这一定是什么原因?可能是一个新问题,正如@Kevin B所说,不太可能是由您提供的代码引起的。我改变了这个问题。现在没有错误,但当我转到页面时,它会不断刷新。这一定是什么原因?可能是一个新问题,正如@Kevin B所说,不太可能是由您提供的代码引起的。我改变了这个问题。现在没有错误,但当我转到页面时,它会不断刷新。这一定是什么原因?可能是一个新问题,正如@Kevin B所说,不太可能是由您提供的代码引起的。您能否添加一点注释来解释它的功能和工作原理?非常感谢。你能添加一点注释来解释它的功能和工作原理吗?非常感谢。你能添加一点注释来解释它的功能和工作原理吗?非常感谢。你能添加一点注释来解释它的功能和工作原理吗?非常感谢。