从Node.js调用C ++库(Node addons / node-ffi)

我正在尝试将外部C ++库(我可以访问.so文件以及头文件)集成到我的Node.js应用程序中。 经过大量的研究,我的select被缩减为: 编写一个节点插件 使用node-ffi 从node-ffi的gitHub的定义,我不能确定它会或不会直接在C ++库上工作: node-ffi是一个用于使用纯JavaScript加载和调用dynamic库的Node.js插件。 它可以用来在不编写任何C ++代码的情况下创build与本地库的绑定。 所以我的问题是: 选项1)是否意味着以某种方式重写外部C ++库? node-ffi是否能够直接调用C ++库,而不需要任何forms的C封装器? 我不是C / C ++的专家,所以如果我错过了一些基本的东西可以回答,请让我知道,这样我可以改善我的问题。

node.js fs.writeFile不完全覆盖文件

我有一个长度为X的文件,它被长度为XY的string覆盖。 问题是,该文件仍然保留XY以上的信息,以便与第一个更长的文件一样长。 所以这里是我的testing结果是给我适合: 文件开始为: { "sOption1": "String", "nOption2": 23.5, "sOption3": "String", "bOption3B": true, "anOption4": [ 5, 6, 7 ], "sNewString": "FruitSalad", "bNewBoolean": false, "iNewNumber": 14.2, "anNewArray": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], "oNewObject": { "bToBeOrNotToBe": true, "sFinishQuote": "That is the question" } } 将正在写入的数据更改为以下内容: { "sOption1": "String", "nOption2": 23.5, […]

访问数据通过Ajax Post发送到NodeJS服务器

如何访问通过Ajax POST发送到Nodejs服务器的数据? //Client $.ajax( { url: '/getExp', data: 'Idk Whats Rc', type: 'POST', }); //Server app.post('/getExp', function(req, res){ var data = req.???; //I want data to be equal to 'Idk Whats Rc' }

如何限制我的node.js客户端连接2?

我基本上只是试图只允许2个客户端同时连接到应用程序。 我应该如何处理这个? 这是我的服务器代码: var express = require('express'), app = express(), server = require('http').createServer(app), io = require('socket.io').listen(server); var osc = require('node-osc'); var client = new osc.Client('127.0.0.1', 12345); server.listen(3000); app.get('/', function(req, res){ res.sendfile(__dirname + '/index.html'); }); io.sockets.on('connection', function(socket){ socket.on('send message', function(data){ client.send('/oscAddress', parseInt(data)); }); });

使用npm 1.3.11安装phonegap在Mac OSX上创build一个Password:目录path

在Mac 10.8.5,当我尝试安装Phonegap sudo npm install -g phonegap 或sudo和运行 npm install -g phonegap 我结束了 /Users/eric/Password:/usr/local/bin/phonegap -> /Users/eric/Password:/usr/local/lib/node_modules/phonegap/bin/phonegap.js phonegap@3.0.0-0.14.4 /Users/eric/Password:/usr/local/lib/node_modules/phonegap ├── pluralize@0.0.4 ├── colors@0.6.0-1 ├── semver@1.1.0 ├── qrcode-terminal@0.9.4 ├── shelljs@0.1.4 ├── optimist@0.6.0 (minimist@0.0.5, wordwrap@0.0.2) ├── node-static@0.7.0 (colors@0.6.2, mime@1.2.11) ├── prompt@0.2.11 (revalidator@0.1.5, pkginfo@0.3.0, read@1.0.5, utile@0.2.0, winston@0.6.2) ├── phonegap-build@0.8.4 (qrcode-terminal@0.8.0, optimist@0.3.7, shelljs@0.0.9, phonegap-build-api@0.3.3) └── cordova@3.0.9 (ncallbacks@1.0.0, open@0.0.3, colors@0.6.2, follow-redirects@0.0.3, […]

帆中的多对多关系

在我的帆应用程序(真正新手帆),我有3个模型: – 用户(电子邮件,密码) – 团体(姓名) – 项目(名称) 我希望组模型充当用户和项目之间的多对多关系,如何实现? 我正在使用帆0.9.4,我已经读了关于关系的问题#124,但不真正了解,如果这可以应用到现有的模型(也包含自己的属性上的itemId和userId)。

Big5到utf-8编码,同时使用Node请求来刮取网站

我是Node.js的新手,我试图使用请求模型来取消一个网站,我遇到了编码的问题:目标网站使用big5作为编码,我希望把它变成utf-8下面的代码: var Iconv = require('iconv').Iconv; var fs = require('fs'); var big5_to_utf8 = new Iconv('big5', 'utf-8'); var buffer = big5_to_utf8.convert(fs.readFileSync('./test')); console.log(buffer.toString()); 我怀疑问题可能是由于在报废过程中的一些错误造成的,所以为了您的参考,我的代码为scrapping: var fs = require('fs'); var request = require('request'); var j = request.jar() var cookie = request.cookie('ASPSESSIONIDCSDCTTSR=KDMMMIMDCCIHJIJFDKGEDFOH') j.add(cookie) request({ url: 'http://amis.afa.gov.tw/v-asp/v101r.asp', method: "POST", "Content-type": "application/x-www-form-urlencoded;", jar:true, encoding: 'utf-8', form: { mhidden1:false, myy:101, mmm:9, mdd:25, mpno:"FC", […]

自定义视图/操作/控制器不能在Sails JS中工作

我一定是做错了,但我看不到…基本上,如果我通过sails generate controller products创build一个控制器/模型,并在文件/controllers/ProductsController我添加一些variables的索引操作,如: index: function(req, res) { return res.view({ myOne: 'World?', myvar: 'hello???', title: 'Yeap' }) }, 当我检查本地主机:1337 / products肯定足够的variables打印在模板中。 请注意,我没有添加自定义视图,我的模板文件位于views/products/index.jade (我使用的是Jade而不是EJS)。 但是,如果我在/config/routes创build自定义视图,例如: '/custom': { view: 'custom', controller: 'ProductsController', action: 'customAction' } 并在我的ProductsController中,我有一个非常类似的行动,如前所述: customAction: function(req, res) { return res.view({ myOne: 'Hello?', myvar: 'World???', title: 'Yeap' }) }, variables不会打印在我的模板中。 模板被称为好,所以是控制器和行动(所以它似乎)。 任何人都可以解释我做错了什么?

ReferenceError:Intl没有在Node.js中定义

我试图在Node.js中构造一个new Intl.Collator()对象。 有谁知道为什么Intl对象不会出现在节点运行时? 根据MDN ,它被ECMAScript指定为命名空间,所以我不明白为什么它不会在那里。

unit testing用passport.js和express.jslogin

我试图testing我的本地login。 我已经用passport.js实现了,遵循它的指导并遵循这个MEAN框架。 我很确定实现是正确的,但是总是失败的testing有问题。 如果authentication失败,应该redirect到“/ signin” 如果authentication是正确的,应该去“/” 但是当我testing时,authentication总是失败。 这是routes.js : module.exports = function(app, passport, auth) { var users = require('../app/controllers/users'); app.get('/signin', users.signin); app.post('/users/session', passport.authenticate('local', { failureRedirect: '/signin', failureFlash: 'Invalid email or password.' }), users.session); var index = require('../app/controllers/index'); app.get('/', index.render); passport.js : var mongoose = require('mongoose'), LocalStrategy = require('passport-local').Strategy, User = mongoose.model('User'), config = require('./config'); module.exports […]