Articles of jquery

使用node.js + socket.io发送通知

我正在尝试使用Node.js + soket.io发送通知 在客户端,我发送到服务器来聆听 socket.emit('send to server',{user_id:user_id,other_stuff:other_stuff}) 在节点上 socket.on('send to server',function(date){ socket.emit('notification_'+user_id,'test data'); }); 在客户端收听通知 socket.on("notification_<?php echo $_SESSION['user_id'];?>",function(date){alert(data)}); 问题是它不会向其他用户发送通知 如果我在发送“发送到服务器”期间传递自己的user_id,那么它将返回给我自己,但是如果使用其他user_id(谁login了其他borwser),则不会向该用户发送任何内容。 请指出,如何发送通知给不同的用户。

router.get('/')在expressjs不工作

我无法通过'/'路由模式访问我的快速应用程序的主页。 它正在处理/索引例如我的快递版本是4.6。 我试过app.use('/ *',路由器),但我的应用程序没有响应或503服务暂时不可用。 现在它正在通过“/ index”模式工作,其他path正常工作。 只有'/'模式不起作用。 🙂 这是我的代码片段。 var http = require('http'); var express = require('express'); var app = express(); var router = express.Router(); app.use('/', router); app.set('view engine', 'ejs'); app.set('views', './views'); app.use(express.static('./public')); var bodyParser = require("body-parser"); app.use(bodyParser()); var fs = require('fs'); var clientSessions = require("client-sessions"); var form = require('express-form'); var field = form.field; var […]

nodejs函数中的域error handling程序装饰器

我正在尝试为我的节点js函数编写一个装饰器。 就像是 'Test func a': custom_decorator( func(x)){ .. .. .. }) 假设我想为我的函数添加域error handling程序,我想抽象域error handling到我所有的function.. var d = domain.create().on('error', function(err) { console.error(…); }); d.enter(); "My function" d.exit() 我想将error handling移动到一个装饰器,以便函数作者可以使用它来调用它 function_name : errorDecorator(fn)

快速路由器找不到

我使用如下的快递生成器创build了一个快速项目 express project_name 和 npm install 这是我的app.js var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var routes = require('./routes/index'); var users = require('./routes/users'); var app = express(); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); // uncomment […]

JSDom不加载相关的脚本

所以我试图用jsdombuild立一个摩卡testing,经过多次debugging,我把问题的范围缩小到jsdom执行绝对URL脚本(例如http://code.jquery.com/jquery-2.1.3.min.js ),但不是相对的URL脚本(例如js/script.js )。 我的test.js如下: var assert = require("assert"); var fs = require('fs'); var jsdom = require("jsdom"); describe('Foo Test', function(){ it('Foo Check', function(done){ this.timeout(5000); jsdom.env({ html: fs.readFileSync('index.htm') ,features: { FetchExternalResources: ["script"] ,ProcessExternalResources: ["script"] } ,done: function(errors, window){ if(errors != null) console.log('Errors', errors); var $ = window.$; // $ is defined var foo = window.foo; //foo is […]

通过JSDom的JQuery不是一个赋予TypeError的函子

IO.js 1.3.0在Windows上使用带有Mocha 2.0.1的JSDOM 4.0.1和jQuery 2.1.1 以下代码: var chai = require('chai'); var jsdom = require('jsdom'); describe('JSDOM', function () { var $; beforeEach(function () { global.document = jsdom.jsdom('<html><body><section id="banner"></section></body></html>'); global.window = global.document.defaultView; global.navigator = global.window.navigator; $ = global.jQuery = require('jquery')(global.window); }) it('Using jquery', function () { var dom = $("#banner"); }); }); 当使用JQueryselect器作为函子时(例如$(…)), TypeError:object的错误不是函数 。 任何人遇到这个,并有一个解决方法?

使用Node.js和Socket.IO单击jQuery函数

我已经创build了一个简单的聊天应用程序推荐(工作正常),但我很难找出如何启动与Socket.IO跨networking套接字的jQueryfunction。 例如,我有一个button来点击: <button id="button"> Click me! </button> 我希望我的button在被点击时执行一个函数: $("button").click(function() { doSomething(); }); 这里是我在客户端的一个例子 var socket = io.connect('http://localhost:3000'); function doSomething() { $('body').css({ background: "red" }); } 这是我在服务器端(我的server.js文件) – 我认为这可能导致部分问题: var io = require('socket.io'), connect = require ('connect'); var app = connect().use(connect.static('public')).listen(3000); var commands = io.listen(app); commands.sockets.on('connection', function (socket){ // Possibly insert handler here? }); 以防万一我不明确的目的 – […]

获取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 […]