[英]jQuery functions not working on express.js routes in node.js
I'm new in node.js.My express.js app structure: 我是node.js.My express.js应用程序结构的新手:
| my-application
| -- app.js
| -- node_modules
| -- public
| -- models
| -- users.js
| -- routes
| -- index.js
| -- views
| -- index.ejs
I try to use $.inArray() function. 我尝试使用$ .inArray()函数。 I installed https://www.npmjs.com/package/jquery package. 我安装了https://www.npmjs.com/package/jquery包。
routes/index.js 路线/ index.js
var express = require('express');
var $ = require('jquery');
var router = express.Router();
router.get('/', function(req, res, next) {
var arr = [ 'a','b','c' ];
$.inArray('a',arr);
res.render('index',{
title:'home'
});
});
module.exports = router;
it gives me following errors: 它给了我以下错误:
undefined is not a function
TypeError: undefined is not a function
at c:\Users\Ahmed Dinar\Dropbox\IdeaProjects\justoj\routes\index.js:12:7
at Layer.handle [as handle_request] (c:\Users\Ahmed Dinar\Dropbox \IdeaProjects\justoj\node_modules\express\lib\router\layer.js:95:5)
at next (c:\Users\Ahmed Dinar\Dropbox\IdeaProjects\justoj\node_modules\express\lib\router\route.js:131:13)
at Route.dispatch (c:\Users\Ahmed Dinar\Dropbox\IdeaProjects\justoj\node_modules\express\lib\router\route.js:112:3)
at Layer.handle [as handle_request] (c:\Users\Ahmed Dinar\Dropbox\IdeaProjects\justoj\node_modules\express\lib\router\layer.js:95:5)
at c:\Users\Ahmed Dinar\Dropbox\IdeaProjects\justoj\node_modules\express\lib\router\index.js:277:22
at Function.process_params (c:\Users\Ahmed Dinar\Dropbox\IdeaProjects\justoj\node_modules\express\lib\router\index.js:330:12)
at next (c:\Users\Ahmed Dinar\Dropbox\IdeaProjects\justoj\node_modules\express\lib\router\index.js:271:10)
at Function.handle (c:\Users\Ahmed Dinar\Dropbox\IdeaProjects\justoj\node_modules\express\lib\router\index.js:176:3)
at router (c:\Users\Ahmed Dinar\Dropbox\IdeaProjects\justoj\node_modules\express\lib\router\index.js:46:12)
How can i use jQuery functions in routes also in my models. 我如何在我的模型中的路由中使用jQuery函数。
Thanks in advance. 提前致谢。
jQuery does not work very well with the Node JS, I recommend to use Lodash - https://lodash.com/ . jQuery与Node JS不能很好地工作,我建议使用Lodash - https://lodash.com/ 。
var express = require('express');
var _ = require('lodash');
var router = express.Router();
router.get('/', function(req, res, next) {
var arr = [ 'a','b','c' ];
var inArray = _.indexOf('a',arr) > 0;
res.render('index',{
title:'home'
});
});
module.exports = router;
Keep in mind that jquery require a document window for properly work. 请记住,jquery需要一个文档窗口才能正常工作。
You could maybe use jsdom for that: 你也许可以使用jsdom :
var jsdom = require("jsdom"),
$ = require('jquery')(jsdom.jsdom().parentWindow);
Take a look at: 看一眼:
Error: jQuery requires a window with a document 错误:jQuery需要一个带文档的窗口
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.