Articles of javascript

Node.js:捕获`child_process.spawn`的STDOUT

我需要捕获一个自定义的stream产生的subprocess的输出。 child_process.spawn(command[, args][, options]) 例如, var s = fs.createWriteStream('/tmp/test.txt'); child_process.spawn('ifconfig', [], {stdio: [null, s, null]}) 现在我该如何从/tmp/test.txt中实时读取? 它看起来像child_process.spawn没有使用stream.Writable.prototype.write和stream.Writable.prototype._write它的执行。 例如, s.write = function() { console.log("this will never get printed"); }; 以及, s.__proto__._write = function() { console.log("this will never get printed"); }; 它看起来像使用文件描述符来将child_process.spawn写入文件。 这样做不起作用: var s2 = fs.createReadStream('/tmp/test.txt'); s2.on("data", function() { console.log("this will never get printed either"); }); […]

与蓝鸟诺言使用ldapjs

我在这里发布类似的东西: 使用ldapjs的承诺 。 不幸的是,它仍然没有解决。 这次我尝试了蓝鸟,希望能得到一些好运。 // https://www.npmjs.com/package/ldapjs var Promise = require('bluebird'); var ldap = Promise.promisifyAll( require('ldapjs') ); var config = require('./config'); var print_r = require('print_r').print_r; var my_filter = "(&(objectCategory=person)(objectClass=user)" + "(cn=" + 'someone' + "))"; var ldap_username = config.ad.username; var ldap_password = config.ad.password; var ldap_url = config.ad.url; var ldap_dn_search = config.ad.dn_search; process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; ldap.Attribute.settings.guid_format […]

将每个模块组装成一个.js文件

我想尽量减less客户端在浏览器中加载脚本的HTTP请求数量。 这将是一个相当普遍的问题,但我仍然希望我能得到一些答案,因为JavaScript中的模块pipe理已经是一个痛苦。 现在的情况 现在,在开发中,每个模块都是从主html模板中单独请求的,如下所示: <script src="/libraries/jquery.js"></script> <script src="/controllers/controllername.js"></script> … 服务器在Node.js上运行,并根据请求发送脚本。 显然这是这样做的最不理想的方式,因为所有的模型,集合等也被分成它们自己的文件,这些文件翻译成许多不同的请求。 就研究而言 我遇到的库(使用AMD和CommonJS的RequireJS)可以向发送给客户端的主.js文件请求模块,但需要大量额外的工作才能使每个模块与每个库兼容: ;(function(factory){ if (typeof define === 'function' && define.amd) define([], factory); else factory(); }(function(){ // Module code exports = moduleName; })); 我的目标 我想在服务器上创build一个将所有模块连接在一起的文件。 如果我可以做到这一点,而不必添加更多的代码,已经存在的模块将是完美的。 然后,我可以简单地将这个单个文件提交给客户端。 这可能吗? 另外,如果我设法构build一个单独的文件,我应该在其中包含开源库(jQuery,Angular.js等)还是在客户端从外部cdn请求它们?

节点JS,快速结构和需求混淆

这一直使我疯狂。 我是NodeJS的新手。 我很喜欢它,但有些东西一直把我扔掉。 我被递交给节点项目的一个非常基本的起点,我不确定如何search谷歌。 //myapp/server.js var config = require('./config'); var app = express(); var api = require('./app/routes/api')(app, express); // <– this? app.use('/', api); var server = app.listen(3000, function () { console.log('\n============================'); console.log(' Server Running on Port 3000 '); console.log('============================\n'); }); 然后是包含路由的api.js文件。 //myapp/app/routes/api.js var config = require('../../config'); var mysql = require('mysql'); module.exports = function(app, express) { […]

为什么'新Promise(…)'返回'undefined'?

看起来如果在用于创build一个promise的函数中没有引用'resolve'函数,那么promise就是未定义的。 在下面的代码中,… var count = 0; var limit = 3; // var thePromise; function timeout(_count) { thePromise.resolve(_count); } function sendMessage() { return new Promise(function(resolve, reject) { if (++count > limit) { reject({'Limit Exceeded': count}); } else { // With this line in place, the return value from this function // (expected to be a promise) […]

如何使用React.js在Sails.js上呈现服务器端模板?

我正在尝试用Sails.js和React构build一个同构的应用程序。 客户端部分很容易。 但是我遇到了服务器端渲染的问题。 当我尝试使用React服务器渲染一个* .jsx文件时,我得到了这个: renderToString(): You must pass a valid ReactElement 我正在使用sailsjs,react和sails-hook-babel(用于ES6语法)。 ./assets/components/Auth.jsx: import React from 'react'; export class Auth extends React.Component { constructor(props) { super(props); } render() { return ( <div className='auth'> Very simple element without any logic just for test server-rendering. </div> ); } } ./api/controllers/AuthController.js: var Auth = require('./../../assets/components/Auth.jsx'); import React […]

这个在全球范围内和内部的function

根据MDN的这个解释 : 在全球范围内, this是指全球性的客体 在函数上下文中,如果函数被直接调用,则它再次引用全局对象 但是,以下是: var globalThis = this; function a() { console.log(typeof this); console.log(typeof globalThis); console.log('is this the global object? '+(globalThis===this)); } a(); …放在文件foo.js产生: $ nodejs foo.js object object is this the global object? false

如何访问RequireJS(AMD)环境中的node.js模块?

我有一个使用RequireJS (2.1.14)作为模块系统的前端SPA。 它基本上引导和加载Backbone.Marionette应用程序。 在main.js : require.config ({ baseUrl: '/js', waitSeconds: 200, nodeRequire: require, paths: { jquery: '//cdn/jquery.min', underscore:'//cdn/underscore-min', // more plugins }, shim: { // shimming stuff } }); require(['marionette', 'vent', 'config/template', 'app', 'routers/main' ], function (Marionette, vent, Template, nrtApp ) { 'use strict'; nrtApp.module ('Public.Main', function (Main, nrtApp, Backbone,Marionette, $, _) { nrtApp.start (); […]

如何在Node.js中从MongoDB返回JSON?

我有一个叫做pokemon的mongodb数据库,里面有一个名为pokemon的集合。 这里是我尝试编写一个函数,它将在mongodb中执行find()操作: 'use strict'; var MongoClient = require('mongodb').MongoClient; var assert = require('assert'); // db url var url = 'mongodb://localhost:27017/pokemon'; exports.getPokemonByName = function (name) { MongoClient.connect(url, function(err, db) { assert.equal(null, err); var cursor = db.collection('pokemons').find({name: name}); // how to return json? }); }; 然后我在另一个文件中调用这个函数: var express = require('express'); var router = express.Router(); router.get('/pokedex', function (req, res) […]

护照不保持持久login会话

我首先看护照,mongodb和快递持续会议,但没有帮助或没有意义。 我正在尝试持续login我的网站 。 我的序列化过程不起作用。 // Passport needs to be able to serialize and deserialize users to support persistent login sessions passport.serializeUser(function(user, done) { console.log('serializing user:',user.username); //return the unique id for the user return done(null, user._id); }); //Desieralize user will call with the unique id provided by serializeuser passport.deserializeUser(function(id, done) { User.findById(id, function(err, user) { console.log('deserializing […]