javascript

java

python

c#

android

node.js

reactjs

c++

php

html

jquery

css

.net

ios

git

ruby-on-rails

sql

c

string

ruby

node.js-nodeJS-如何使用Express创建和读取会话

当用户进入应用程序时,我想创建一个用户会话。 并在需要时阅读会话。 这是我的尝试

var io   = require('socket.io'),
    express = require('express');
    querystring = require('querystring');

var app = express.createServer();
app.get('/', function(req, res){
    var sessionVal = querystring.parse(req.url.substr(2));// sessionVal is an email for example: me@gmail.com
    app.use(express.cookieParser());
    app.use(express.session({ secret: sessionVal }));
});
var socket = io.listen(app);
socket.on('connection', function(client) {
    client.on('message', function(message) {
        // message will be an object {text:'user text chat blah blah', email:'me@gmail.com'}
        // if the seesion stored, has the same value with message.email
        // then the message will be broadcasted
            socket.broadcast(message.text);
        // else will not broadcast  
    });
});

app.listen(4000);
trans by 2020-01-20T05:57:04Z

node.js-如何在猫鼬中将对象ID设置为数据类型

使用node.js,mongoHQ和mongoose上的mongodb。 我正在为类别设置架构。 我想将文档ObjectId用作我的categoryId。

var mongoose = require('mongoose');

var Schema = mongoose.Schema,
    ObjectId = Schema.ObjectId;
var Schema_Category = new Schema({
    categoryId  : ObjectId,
    title       : String,
    sortIndex   : String
});

然后我跑

var Category = mongoose.model('Schema_Category');
var category = new Category();
category.title = "Bicycles";
category.sortIndex = "3";

category.save(function(err) {
  if (err) { throw err; }
  console.log('saved');
  mongoose.disconnect();     
});

请注意,我没有为categoryId提供值。 我假设猫鼬将使用该架构来生成它,但是文档具有通常的“ _id”而不是“ categoryId”。 我究竟做错了什么?

trans by 2020-01-20T03:47:31Z

node.js-由于每秒上限而限制并排队API请求

我使用mikeal / request进行API调用。 我最常使用的API之一(Shopify API)。 最近设置了新的通话限制,我看到了如下错误:

Exceeded 6.0 calls per second for api client. Slow your requests or contact support for higher limits.

我已经进行了升级,但是无论获得多少带宽,我都必须考虑这一点。 对Shopify API的大部分请求都在async.map()函数内,该函数循环异步请求并收集主体。

我正在寻找任何帮助,也许是一个已经存在的库,该库将环绕请求模块,并实际上阻止,睡眠,调节,分配,管理,同时触发的许多同时请求,并将它们限制为6请求 一次。 如果没有这样的项目,我没有问题。 我只是不知道如何处理这种情况,我希望有某种标准。

我用迈克(mikeal)/要求订了票。

trans by 2020-01-20T01:34:51Z

node.js-需要什么场景调用fs.close

我在nodejs API中找不到有关fs.close的更多信息。我想知道什么情况下需要调用fs.close。例如:

var fs =  require('fs');
fs.writeFile("/home/a.tex","abc"); or like fs.appendFile("/home/a.tex","close")
fs.close(); //is it necessary?

如果我不打电话给fs.close有什么影响吗?

任何帮助表示赞赏。

trans by 2020-01-19T21:24:11Z

Javascript-如何编写简单的Gulp Pipe函数?

我一直在尝试写两个管道函数,一个用于编译较少的文件,另一个用于合并这些文件。 我想学习如何为更复杂的插件编写转换流/管道。

因此,我想知道如何从另一个管道读取数据,以及如何更改该数据并将其发送到下一个管道。 这是我到目前为止所拥有的:

 gulp.src(sources)
   .pipe(through.obj(function (chunk, enc, cb) {

     var t = this;
     // console.log("chunk", chunk.path);
     fs.readFile(chunk.path, enc, function (err,data) {
       if (err) { cb(err); }

       less.render(data, {
         filename : chunk.path,
         sourceMap : {
           sourceMapRootpath : true
         }
       })
       .then(function (outputCss) {
          // console.log("less result",outputCss);
          t.push(chunk);// or this.push(outputCss) same result
          cb();
       });

     });

   }))
   .pipe(through.obj(function (chunk, enc, cb) {
     console.log("chunk", chunk.path); // not event getting called.
     cb();
   }))

对于第二个管道中的每个文件,我无法获取outputCSS。 如何发送?

trans by 2020-01-19T21:01:49Z

node.js-Expressjs日志记录的最佳实践是什么?

我正在构建一个基于expressjs的应用程序,我想在其中记录所有事件。 我可以找到温斯顿,这似乎很酷。 无论如何,我正在寻找一种方法将其连接到我的expressjs应用程序。

我还想要在应用程序内部登录。 我的请求不是那么简单,因此我想将所有内容记录在我的应用程序中(不仅是请求)。

我目前的情况:

server.js(我想在此级别记录http请求)

var express = require('express');
var app = express();
var fs = require('fs');

// Post parser
app.configure(function(){
    app.use(express.bodyParser());
});

// Load routes
require('fs').readdirSync(__dirname + '/routes').forEach(function(file) {
    require(__dirname + '/routes/' + file)(app);
});

// 404: Not found
app.use(function(req, res, next){
    res.json(404, {ERROR: 'Page not found.'});
});

// 500: Error reporing
app.use(function(err, req, res, next){
    console.error(err.stack);
    res.json(500, {ERROR: 'Internal server error.'} );
});

// Startup new server
app.listen(900);

路线/something.js

var something = require(__dirname + '/../controller/something.js');

module.exports = function(app) {
    app.get('/v1/something', function(req, res, next) { new something().getAll(req, res, next); });
};

controller / something.js(我想使用相同的记录器进行调试记录)

/**
 * Constructor
 *
 */
function Something() {
};

/**
 * Get all the data
 *
 */
Something.prototype.getAll = function(req, res, next) {
    // I want to log some very important information here
    res.json({result: true, data: ['hello', 'hi', 'ciao', 'buf']});
}

module.exports = Something;

我正在考虑的另一件事是将所有事件记录在从控制器调用的函数中(例如模型或其他库)。

因此,我认为,创建一些记录器库的好方法可能是使用:

var logger = require(__dirname + '/../libraries/logger.js');

包含记录器定义。 我不知道如何解决的另一个问题是如何为数据添加前缀。 您知道,我有很多并发请求,我想看看每个请求调用了哪个调试消息。

trans by 2020-01-19T16:33:09Z

javascript-如何检查两个对象具有相同的属性名称集?

我正在为应用程序使用node,mocha和chai。 我要测试返回的结果数据属性是否与我的模型对象之一相同(“对象类型”)(非常类似于chai的实例)。 我只想确认两个对象具有相同的属性名称集。 我对这些属性的实际值特别不感兴趣。

假设我的模型人如下。 我想检查一下我的results.data是否具有与预期模型相同的所有属性。 因此,在这种情况下,具有firstName和lastName的Person。

因此,如果results.data.lastNameresults.data.firstName都存在,则应返回true。 如果任何一个都不存在,则应返回false。 一个额外的好处是,如果results.data具有诸如result.data.surname之类的任何其他属性,则它将返回false,因为Person中不存在姓氏。

这个模型

function Person(data) {
  var self = this;
  self.firstName = "unknown";
  self.lastName = "unknown";

  if (typeof data != "undefined") {
     self.firstName = data.firstName;
     self.lastName = data.lastName;
  }
}
trans by 2020-01-19T15:35:52Z

node.js-在javascript中创建ISO日期对象

我已经建立了一个mongo数据库。在mongoDb中创建新的日期对象,以ISO格式创建日期对象例如:new Date()

我正在使用node.js连接到mongo数据库并查询数据库。每当我在javascript中创建新的日期对象(new Date())时,它都会创建javascript日期对象,例如:Wed Mar 06 2013 14:49:51 GMT-0600 (CST)

有没有一种方法可以在javascript中创建ISO日期对象,以便我可以将该对象直接发送到mongoDb并执行日期查询

我可以在mongoDb中执行以下查询

db.schedule_collection.find({
  start_date: { '$gte': new Date(2012, 01, 03, 8, 30) }
})

但是当我从节点发送javascript日期对象时无法执行

mongodb Cookbook提供了一个使用datetime模块查询mongo数据库的python示例,但未提供任何使用javascript的示例。

任何帮助表示赞赏。预先谢谢你

trans by 2020-01-19T14:59:12Z

javascript-为什么我必须在gulp中使用Vinyl-source-stream?

我正在尝试使用gulp和browserify将我的Arguments to path.resolve must be strings文件转换为vinyl-source-stream文件。

var gulp = require('gulp');
var browserify = require('browserify');
var reactify = require('reactify');

gulp.task('js', function () {
  browserify('public/javascripts/src/app.jsx')
    .transform(reactify)
    .bundle()
    .pipe(gulp.dest('public/javascripts/dist'))
});

```

上面抛出了Arguments to path.resolve must be strings。我设法通过使用vinyl-source-stream来解决它

var source = require('vinyl-source-stream');
...
.bundle()
.source('app.js')
...

为什么这样做? 我对nodejs和gulp很陌生。 在阅读了该项目的自述文件和源代码之后,我仍然感到困惑。 有什么帮助吗?

trans by 2020-01-19T14:19:33Z

node.js:从stdin读取readSync吗?

是否可以从node.js中的stdin同步读取? 因为我正在用JavaScript编写JavaScript编译器的想法(只是为了好玩)。 Brainfuck支持需要同步执行的读取操作。

我尝试了这个:

const fs = require('fs');
var c = fs.readSync(0,1,null,'utf-8');
console.log('character: '+c+' ('+c.charCodeAt(0)+')');

但这只会产生以下输出:

fs:189
  var r = binding.read(fd, buffer, offset, length, position);
              ^
Error: EAGAIN, Resource temporarily unavailable
    at Object.readSync (fs:189:19)
    at Object.<anonymous> (/home/.../stdin.js:3:12)
    at Module._compile (module:426:23)
    at Module._loadScriptSync (module:436:8)
    at Module.loadSync (module:306:10)
    at Object.runMain (module:490:22)
    at node.js:254:10
trans by 2020-01-19T11:42:35Z

Socket.io + Node.js跨域请求被阻止

我正在使用node和socket.io编写聊天应用程序。 它在Chrome上运行良好,但mozilla给出了启用跨域请求的错误。

跨域请求被阻止:“相同源策略”不允许读取位于[http://waleedahmad.kd.io:3000/socket.io/?EIO=2&transport=polling&t=1401964309289-2&sid=1OyDavRDf4WErI-VAAAI的远程资源。 可以通过将资源移至同一域或启用CORS来解决。

这是我启动节点服务器的代码。

var express = require('express'),
    app = express(), 
    server = require('http').createServer(app),
    io = require('socket.io').listen(server),
    path = require('path');
server.listen(3000);

app.get('/', function(req, res) {
    res.sendfile(__dirname + '/public/index.html');
});

在客户端。

var socket = io.connect('//waleedahmad.kd.io:3000/');

HTML页面上的脚本标记。

<script type="text/javascript" src="//waleedahmad.kd.io:3000/socket.io/socket.io.js"></script>

我还在应用程序根目录中使用.htaccess文件。 (waleedahmad.kd.io/node)。

Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"
trans by 2020-01-19T10:24:39Z

node.js-流星-collection.find()始终返回所有字段

遇到这个问题(有点烦人),我正在尝试查找集合中的所有记录,而不显示(或显示)特定字段(得分)。 这只是一个示例,并不能反映我的实际代码,但是问题总是可以重现的。 我要排除的字段非常大,我只是试图生成可用记录的菜单。

像这样的命令

    players.find({},{score:1})
    players.find({},{score:0})

始终返回每个字段,而不是触发mongodb中的排除/包含。 我不需要担心什么,因为模板可以控制哪些数据呈现为html? 仍然感觉无论如何数据都已传输到客户端。 并显示在控制台中。

trans by 2020-01-19T09:16:10Z

node.js-如何获取npm全局路径前缀

我相信过去我发现了传递给/usr/local/share/npm/bin的选项,以使其输出用于$PATH(全局模块)的路径。 有人知道这样的选择吗? 还是使用其他任何方法获取全局路径前缀npm

我知道全局模块在我的计算机上的位置(/usr/local/share/npm/bin),通常只需要花费几分钟就可以在其他计算机上找到全局模块:通常$PATH的配置正确,如果不正确,可以四处浏览。 但是,不是有什么快速的方法可以告诉您npm是如何构建的,以及它用于globals模块的路径是什么?

trans by 2020-01-19T02:45:08Z

导入JSON FI时TypeScript编译器错误

所以代码很简单:

Calls.json

{"SERVER":{
    "requests":{
      "one":"1"
    }
} }

file.ts

import json = require('../static/calls.json');
console.log(json.SERVER);

生成的JavaScript是正确的,并且在运行节点js服务器时,控制台日志json.SERVER会按需打印'{请求:{一个:'1'}}'。

但是,打字稿编译器(commonjs)在某种程度上并不特别喜欢这种情况,并抛出:“找不到模块'../static/calls.json'”。

当然,我尝试编写.d.ts文件,如下所示:

declare module '../static/calls.json'{
    var exp:any;
    export = exp;
}

这显然会引发:“环境模块声明无法指定相对模块名称”。

我还尝试了不同的变体,例如:

declare module 'calls.json' {
    import * as json from '/private/static/calls.json';
    export = json;
}

然后要求:

import json = require('calls.json');

没有一个能正常工作,并且有自己的编译器错误:)

我想使用一个外部.json文件,因为我使用commonjs服务器端和amd客户端,并且我想要一个用于加载常量的文件。

trans by 2020-01-18T13:35:52Z

node.js-将字符串转换为缓冲区Nod

我正在使用一个函数调用时返回缓冲区的toString的库。

确切的代码是

return Buffer.concat(stdOut).toString('utf-8');

但是我不想要它的字符串版本。

我只想要缓冲

那么如何将字符串转换回缓冲区。

有点像

var bufStr = Buffer.concat(stdOut).toString('utf-8');
//convert bufStr back to only Buffer.concat(stdOut).

这该怎么做?

我试着做

var buf = Buffer.from(bufStr, 'utf-8');

但是它抛出的utf-8不是函数。当我做

var buf = Buffer.from(bufStr);

它引发TypeError:这不是类型化数组。

谢谢

trans by 2020-01-18T11:17:18Z

node.js-PhoneGap / Cordova Android开发

更新1:

这就是我最后所做的一切:

sudo aptitude install -y python-software-properties python g++ make
sudo add-apt-repository -y ppa:chris-lea/node.js
sudo aptitude update
sudo aptitude install nodejs
sudo aptitude install npm
sudo npm install -g cordova
sudo npm install -g phonegap
phonegap create my-app
cd my-app
export PATH=${PATH}:/home/oshirowanen/Downloads/adt-bundle-linux-x86_64-20131030/sdk/platform-tools:/home/oshirowanen/Downloads/adt-bundle-linux-x86_64-20131030/sdk/tools
sudo aptitude install ant
cordova platform add android
android create avd --name my_and --target 1
phonegap run android

有没有必要吗?


原始问题:

在我的Ubuntu 12.04计算机上,我刚刚使用npm和cordova安装了node.js:

$ node -v
v0.10.23

$ npm -v
1.3.17

$ cordova -v
3.3.0-0.1.1

当我尝试添加android时:

$ cordova platform add android

我得到以下输出:

Creating android project...

/usr/lib/node_modules/cordova/node_modules/q/q.js:126
                    throw e;
                          ^
Error: An error occured during creation of android sub-project. 

/home/oshirowanen/.cordova/lib/android/cordova/3.3.0/bin/node_modules/q/q.js:126
                    throw e;
                          ^
Error: An error occurred while listing Android targets
    at /home/oshirowanen/.cordova/lib/android/cordova/3.3.0/bin/lib/check_reqs.js:87:29
    at _rejected (/home/oshirowanen/.cordova/lib/android/cordova/3.3.0/bin/node_modules/q/q.js:808:24)
    at /home/oshirowanen/.cordova/lib/android/cordova/3.3.0/bin/node_modules/q/q.js:834:30
    at Promise.when (/home/oshirowanen/.cordova/lib/android/cordova/3.3.0/bin/node_modules/q/q.js:1079:31)
    at Promise.promise.promiseDispatch (/home/oshirowanen/.cordova/lib/android/cordova/3.3.0/bin/node_modules/q/q.js:752:41)
    at /home/oshirowanen/.cordova/lib/android/cordova/3.3.0/bin/node_modules/q/q.js:574:44
    at flush (/home/oshirowanen/.cordova/lib/android/cordova/3.3.0/bin/node_modules/q/q.js:108:17)
    at process._tickCallback (node.js:415:13)

    at /usr/lib/node_modules/cordova/src/platform.js:244:30
    at ChildProcess.exithandler (child_process.js:641:7)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:735:16)
    at Socket.<anonymous> (child_process.js:948:11)
    at Socket.EventEmitter.emit (events.js:95:17)
    at Pipe.close (net.js:466:12)

任何人都知道为什么会这样以及如何解决吗?

我在PhoneGap上遇到了同样的问题。

trans by 2020-01-18T10:55:59Z

请求新页面时如何在Express(Node.js)中使用AngularJS路由?

我正在使用Express,它从静态目录加载AngularJS。 通常,我会请求http://localhost/,其中Express为我提供了$location和所有正确的Angular文件等。在我的Angular应用中,我具有以下路由设置,这些路由替换了http://localhost/project/3中的内容:

$routeProvider.when('/', {
    templateUrl: '/partials/main.html',
    controller: MainCtrl,
});

$routeProvider.when('/project/:projectId', {
    templateUrl: '/partials/project.html',
    controller: ProjectCtrl,
});

$locationProvider.html5Mode(true);

在我的主页上,我具有指向$location的链接,该链接将成功加载模板并将我定向到http://localhost/project/3或我指定的任何ID。 问题是当我尝试将浏览器定向到http://localhost/project/3或刷新页面时,请求将发送到Express / Node服务器,该服务器返回Cannot GET /project/3

如何设置我的Express路线以适应这一点? 我猜想它需要在Angular中使用$location(尽管我宁愿避免使用丑陋的?search和#hash),但对于如何设置Express路由来处理此问题一无所知 。

谢谢。

trans by 2020-01-18T05:33:06Z

node.js-NodeJS:bcrypt与本机cryp

有人可以指出两者之间的区别吗?

bcrypt看起来很棒。

trans by 2020-01-18T04:29:55Z

javascript-接受POST请求的Node.js服务器

我正在尝试允许javascript与Node.js服务器通信。

POST请求(Web浏览器)

var http = new XMLHttpRequest();
var params = "text=stuff";
http.open("POST", "http://someurl.net:8080", true);

http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");

alert(http.onreadystatechange);
http.onreadystatechange = function() {
  if (http.readyState == 4 && http.status == 200) {
    alert(http.responseText);
  }
}

http.send(params);

现在,Node.js服务器代码如下所示。 在用于GET请求之前。 我不确定如何使其与POST请求一起使用。

服务器(Node.js)

var server = http.createServer(function (request, response) {
  var queryData = url.parse(request.url, true).query;

  if (queryData.text) {
    convert('engfemale1', queryData.text, response);
    response.writeHead(200, {
      'Content-Type': 'audio/mp3', 
      'Content-Disposition': 'attachment; filename="tts.mp3"'
    });
  } 
  else {
    response.end('No text to convert.');
  }
}).listen(8080);

在此先感谢您的帮助。

trans by 2020-01-18T02:20:53Z

javascript-node.js要求找不到自定义模块

这是项目结构:

/
  app.js
  package.json
  /node_modules
  /app
    config.json
    /frontend
      assets and html tpls
    /modules
      couch.js
      raeume.js
      users.js

我需要来自app.js的config.json,raeume.js和users.js,并且一切正常。

var config   = require('./app/config');
var raeume   = require('./app/modules/raeume');
var users    = require('./app/modules/users');

然后我以同样的方式要求user.js中的config.json和couch.js,它什么也找不到。

var couch     = require('./app/modules/couch');
var config    = require('./app/config');

我猜应该找到它。 经过一些研究,我看到了各种各样的问题,包括如何编译节点。 因此包括:我在节点v0.10.7的osx 10.8上工作。

trans by 2020-01-18T01:17:16Z

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 下一页 共157页