Articles of 序列化

关于二进制序列化和反序列化的问题

我想创build一个能高效地序列化和反序列化一个Buffer的模块。 所以我在问自己几个问题。 使用序列化和反序列化函数创build一个ES6类,处理按位运算符,还是必须使用像concetrate或dissolve这样的模块,是一个好的操作? 哪种手术更好? 我已经找了一个NPM包,可以有效地序列化和反序列化ZCL缓冲区,我发现了像“binary-parser”这样看起来不错的东西,但是可能会很重,因为ZCL群集有多个不同的字节执行。 那么有没有什么东西,而不是只有序列化或反序列化,会做呢?

可以序列化node.js vm.script?

我正在尝试使用node.js vm.script预编译大量JS函数,以便我可以多次调用这些函数,而不必每次重新编译。 请注意,我不能只将函数包含在模块中,因为它们在体系结构上与“核心”代码完全分离。 这很好 – 每个编译的脚本都存储在一个对象中,并可以根据需要运行。 我想弄清楚的是如何在多个forksubprocess中使用这个模型,所以任何subprocess都可以用来运行编译后的脚本。 问题是如何序列化,所以我可以把它传递给孩子。 更重要的是,脚本variables中是否有固有的东西可以将它“绑定”到创build的过程?

在node.js中对多态数组进行序列化

我正在寻找一个JavaScript对象的序列化方法,其中包含几个不同类的其他对象与函数参数。 这是一个简单的testing案例: // Paper class: function Paper(name) { this.name = name; } Paper.prototype = { string: function() { return "Paper:"+this.name; } }; // Book class: function Book(name) { this.name = name; } Book.prototype = { string: function() { return "Book:"+this.name; } }; // Library class: function Library(name) { this.items = []; } Library.prototype = { […]

Node.js,Express,jQuery.param() – 从JSON中删除引号

我使用jQuery.param()序列化客户端上的JSON对象: var test = {"coordinates":[[-122.610168,37.598167],[-122.288818,37.598167],[-122.288818,37.845833],[-122.610168,37.845833],[-122.610168,37.598167]]}; console.log($.param( test )); 在发出GET请求之后,在Express路由的服务器端,我访问对象: console.log('Server received: ' + JSON.stringify(req.query.coordinates)); 这将输出下面的注释每个坐标周围的引号: Server received: [["-122.610168","37.598167"],["-122.288818","37.598167"],["-122.288818","37.845833"],["-122.610168","37.845833"],["-122.610168","37.598167"]] 我怎样才能删除报价? 我可以parsing一个string,并使用正则expression式然后parsing回JSON,但这似乎效率低下。 任何人都可以build议过程的哪一部分是添加它们,以及如何删除它们?

passport.js无法在实时生产服务器中存储会话

当我在端口8080 在本地运行服务器时,它在正常validation和序列化数据时正常工作。 但是,当我在现场制作上运行我的代码时,它通常是通过身份validation的,但不会将任何数据存储到会话中! 我不知道什么中间件应该为这件事情设置?

NodeJS Passport会话序列化 – 反序列化用户进入会话?

我正在NodeJS中实现一个Web应用程序,用户在访问每个页面之前需要login。 我使用Passport模块实现了用户authentication。 根据护照指南页面,我在护照configuration中创build了serializeUser和deserializeUser用户函数,以便使用会话跟踪。 在deserializeUser函数中,我从cookie中获取存储的信息,传递给函数的第一个参数,然后在数据库中的用户表中search以检索用户详细信息,并将其传递给done函数。 但是我看到,在每个请求中,反序列化函数被调用并查询数据库来检索用户的详细信息,并将其传递给done函数。 我的问题是,无论是不断查询数据库(在性能和逻辑上),获取用户对象,是正确的做法,还是我已经理解和实现了错误的东西。 可能做的事情不是真的需要?

在Node.js中从C#工具反序列化一个字节

我inheritance了一个C#工具,它将会议数据的序列化字节数组发送到联机日历应用程序。 在线日历使用node.js API。 我的问题是,序列化的字节数组没有得到由node.js(IE,表示req.body对象为空)correclty。 我正在寻找一种发送数据的方式,以便Node.js可以parsing数据,或者Node.js中可以处理c#字节数组的parsing器。 它是JSON格式。 这是发送请求的代码: string json = JsonConvert.SerializeObject(reallyPost, Formatting.None); byte[] postThisz = Encoding.ASCII.GetBytes(json); byte[] response = wc.UploadData(siteUrl, postThisz); 目前我只是试图logging数据。 路线在这里被捕获: app.post('/remotePost', api.remotePost); 它使用这个控制器: module.exports.remotePost = function (req, res) { console.log(req); console.log(req.body); sendJsonResponse(res, 200, "remote posted."); }; req.body被我的parsing中间件填充: app.use(bodyParser.json()); 但是,这不能处理由C#程序发送的字节数组。 我可以通过find一个能正确处理C#POST的parsing器来解决这个问题,或者find一个可以创build一个包含JSON.stringify()返回格式的东西的C#模块。

Node.js将对象的所有属性转换为string

我怎样才能将所有对象属性转换为string,就像它们将是path? 例如 {a:{s:"asd",g:"asd"}, b:2} 输出: ["as", "ag", "b"] 是否存在一个function可以做这样的事情?

快速护照会议不起作用

我正在构build一个Node应用程序,在这个应用程序中用户必须注册或login,然后当他们拖放一些元素(前端全部正常工作)时,我在数据库上存储他们的行为以及相应的userId。 我的理解是,一旦他们注册/login,我可以使用req.user来访问他们的ID并正确地存储他们的行动,但它不工作。 这是我的server.js文件中处理Passport的部分。 另外,我使用Sequelize作为ORM,但是所有处理数据库的东西在没有req.user部分的情况下都是完美的。 app.use(cookieParser()); app.use(bodyParser.json()); app.use(passport.initialize()); app.use(passport.session()); /****** Passport functions ******/ passport.serializeUser(function (user, done) { console.log('serialized'); done(null, user.idUser); }); passport.deserializeUser(function (id, done) { console.log("start of deserialize"); db.user.findOne( { where : { idUser : id } } ).success(function (user) { console.log("deserialize"); console.log(user); done(null, user); }).error(function (err) { done(err, null); }); }); //Facebook passport.use(new FacebookStrategy({ //Information […]

序列化和反序列化数组到文件 – 节点JS

我有一个数组,说这个例子看起来像这样: var position = [1,3,4,6]; 我想序列化到一个文件,让我们说position.txt。 比我想要加载的数据保存到另一个正在运行的JS程序,如下所示: var position = loadArrayFromFile("position.txt"); 有什么我可以用来做到这一点?