Articles of jquery

获取json数据时出错,ajax

我试图从服务器获取数据,而不使用ajax刷新页面,所以问题的数据来像文本不像json数据 我的代码: $.ajax({ type: "GET", url: "http://localhost:8080/search?key=" + QUERY + "", success: function (reslt) { console.log(reslt); console.log(reslt.length); } }); 和服务器上的数据: 即时通讯使用nodejs和expression框架的代码: router.get('/search', function (req, res) { tab = ['08:00', '09:00', '10:00', '11:00']; res.end(JSON.stringify(tab)); }); 为什么当我做console.log(reslt[3]); 这是给我8 ,应该给我10:00

Express EJS模板如何传递json对象来查看它是否是未定义的

当用户login时,我将用户分配给window.user对象供客户端使用 请注意,我使用passport.js,这意味着当用户进行身份validation时,req.user将是一个有效的mongoose模型对象。 否则req.user将被定义 passport.deserializeUser(function(id, done) { User.findById(id, function(err, user) { done(err, user); }); }); locals.user被分配在我的路线中。 在我的路由中间件: res.locals.user = JSON.stringify(req.user) //stringify in js instead of ejs, easier to write 最后一步,在我的ejs文件中: <script type="text/javascript"> window.user = <%- (locals.user) || '' %> </script> 如果用户没有login,我应该通过“',还是'{}'或'空'? 在客户端,我最有可能使用angular.fromJson方法,它的文档很差: https ://docs.angularjs.org/api/ng/function/angular.fromJson 不过,我可能使用jQuery.parseJSON非angular度模块。 目前我使用空string,但我必须每次检查长度,这是tedius。

Socket.io – 无法从客户端发送消息到服务器端

我有两个文件 – 的index.html index.js 在index.html中 ,我有一个文本框。 我想在文本框上显示input到控制台的消息(node.js的命令提示符)。 在index.html中 ,我写了这个 – <script> var socket = io(); $('form').submit(function(){ socket.emit('chat message', $('#m').val()); $('#m').val(''); return false; }); </script> 在服务器端,在index.js中我使用了这个 – socket.on('chat message', function(msg){ //here is the listener to the event console.log('message: ' + msg); }); 但是,消息没有显示在控制台中。 我的代码有什么问题? 如果需要请参考下面的文件。 index.js var app = require('express')(); var http = require('http').Server(app); var io […]

我如何在我的项目中使用npm包

最近我一直在使用nodejs,但是我一直在遇到类似的错误。 有大量的项目在那里,其中有很多有npm包,但每当我尝试npm install –save some-package我似乎无法弄清楚如何使用它们。 我不是指像快递,或mongoose,我似乎可以使用就好了。 我的意思是像Bootstrap,或者现在的masonry-layout 。 例如,我按照砌体布局页面上的步骤执行了以下步骤: npm install –save masonry-layout 然后根据npm页面的masonry布局,我添加到以下我的通用scripts.js文件(我保留小的片段,我需要在这里,直到我分开代码更逻辑): $('.grid').masonry({ // options… itemSelector: '.grid-item', columnWidth: 200 }); 但是,我的控制台页面加载时出现以下错误: TypeError: $(…).masonry is not a function $('.grid').masonry({ 当我尝试使用其他前端节点模块或项目时遇到类似的问题。 我错过了什么吗? 我总是最终使用cdn或手动安装文件,我厌倦了这样的工作。

在Node.js的TypeScript 1.6.2中导入jQuery

我正在使用Node.js工作在一个爬虫。 我使用jQueryparsing使用jsdom构build的页面。 我通过tsd发现了一个jquery.d.ts ,它的结尾是这样的: declare module "jquery" { export = $; } declare var jQuery: JQueryStatic; declare var $: JQueryStatic; 这个定义似乎只适用于jQuery在全局加载或全局窗口variables可用的客户端… 正如这里所解释的,当在window.document不可用的环境(如Node.js)中导入(使用require )时,jQuery会导出一个必须使用窗口对象初始化的工厂: // JavaScript (ES5) var jquery = require("jquery"); // … var $ = jquery(window); 但是使用TypeScript,因为定义不包含这个工厂。 它不工作: // TypeScript import jquery from "jquery"; // Module '"jquery"' has no default export import {jquery} from "jquery" […]

jQuery + node.js表示POST请求

我试图发送一个发布请求到节点服务器。 这是我的客户端代码: function send(userid,message){ $.ajax({ method: "POST", url: "/chat/messages?id="+userid+'&message='+message }) clear(); } 这是我的服务器端代码: app.post('/chat/messages',function (req,res){ var query = url.parse(req.url,true).query insertMessage(query.id,query.message) }) 这工作,但是我不确定使用邮政在查询string中获取数据是正确的路要走。 我试图在$ajax参数中添加一个数据字段: function send(userid,message){ $.ajax({ method: "POST", url: "/chat/messages" data : {'id' : userid, 'message' : message} }) clear(); } 在服务器端使用bodyParser()来parsing主体内容: app.use(bodyParser.json()) app.post('/chat/messages',function (req,res){ console.log(req.body) }) 但是当我logging响应时, body{ }对象总是空的。 这是为什么? POST请求需要一个<form>标签吗? 我尝试编辑我的ajax请求使用json作为dataType和string的数据,但req.body仍然是空的。 $.ajax({ method: […]

获取文件作为AJAX的回应?

我有一个通用的Ajax调用例程,我用它来调用node.js中的一个函数。 这个函数从服务器读取一个文件(主要是xls),然后把它传回客户端。 这里是我在Node.js(服务器端)的实现: // FILE DOESNT EXISTS BEFORE, // FILE IS CREATED HERE THEN SAVED IN SERVER AS A FILE fs.readFile("/path/to/file.xlsx", function(err, file){ res.setHeader('Content-Type', 'audio/mpeg'); res.setHeader('Content-Disposition', 'attachment; filename=file.xlsx'); res.write(file, 'binary'); res.end(); }); 这是我使用的ajax调用。 $('#submit').click(function() { $.ajax({ url: '/', type:'POST', data: data, dataType: 'json', }).done(function(data) { console.log(data); }); }) 我成功地获取打印在我的控制台( console.log(data) )的二进制数据。 我的问题是如何将这些data转换为适当扩展名的文件,然后提示浏览器保存它们? 任何build议或其他解决方法?

如何防止HTML列表菜单项分配权限后刷新

请根据从Node.js中的会话数据读取的用户types以及基于用户types的hide html li元素来分配用户权限。 这似乎工作,但在这个意义上,这是可怕的行为。 每当我加载一个页面,所有的菜单项在被隐藏之前再次刷新/加载。 我如何防止这种行为。 那里有一些我做错了或者做法不好。 我在应用程序的每个页面上都引用了客户端代码这是我的代码,用于客户端 $(document).ready(function () { var CheckPermission = location.protocol + '//' + location.host + '/permission'; $.get(CheckPermission, function (data) { if (data == 'Student') { $("#Offer").find("#shareitem").show(); $("#Offer").find("#offeritem").hide(); $("#Offer").find("#returnitem").hide(); $("#Offer").find("#recallitem").hide(); $("#Offer").find("#renewitem").hide(); $("#Offer").find("#guestoffer").hide(); $("#Offer").find("#manageoffers").hide(); $("#Overview").hide(); $("#WithHolding").hide(); } else if (data == 'Admin') { $("#Offer").find("#shareitem").hide(); $("#Discover").hide(); } else if (data == 'Teacher') { […]

使用jQuery运行命令行摩卡错误

所以我有这个函数在一个文件中使用jQuery account.js: function getSession() { var session = null; $.ajax({ url: "/ajax/get_session", async: false }).done(function(data, textStatus, jqXHR){ session = data; }); return session; } 我想用Mocha在命令行上testing它。 为此我有另一个文件: testingaccount.js: var assert = require('assert'); var fs = require('fs'); var vm = require('vm'); // includes minified & uglified version, assuming mocha is run in repo root dir var path […]

等待数据从asynchronous嵌套在JQuery中的函数$ .each在Javascript中

这是$ .each内部asynchronouserror handling的后续问题。 正如在那里的评论中提到的,我想处理$ .each循环中的最后一个asynchronous作业之后的数据。 举个例子: var errors = 0; var started = 0; var successful = 0; $.each(…, function(){ started++; connection.query('INSERT INTO tableName SET ?', post, function(err, result) { if (err) { if (err.code === 'ER_DUP_ENTRY') { errors++; } else { throw err; } } else { successful++;} if (started == successful + errors) […]