javascript

java

python

c#

android

c++

node.js

php

html

jquery

ios

reactjs

css

.net

git

ruby-on-rails

sql

c

ruby

string

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

mysql-如何使用Sequelize CLI从Sequelize模型自动生成迁移?

我有一组Sequelize模型。 我要使用迁移,而不是数据库同步。

根据这篇文章,Sequelize CLI似乎可以做到这一点:“使用CLI进行模型生成时,您还将免费获得迁移脚本。”

如何使用Sequelize CLI从现有Sequelize模型自动生成迁移?

trans by 2020-01-18T00:31:23Z

在节点JS / JavaScript中串联字符串的快速方法

这个问题已经在这里有了答案:

  • 连接JavaScript中字符串的最有效方法?                                     4个答案

我了解这样做

var a = "hello";
a += " world";

它相对非常慢,就像浏览器在O(n)中那样。 有没有安装新库的更快方法?

trans by 2020-01-18T00:05:57Z

javascript-在nodeJs中有没有一种方法可以循环使用数组而不使用数组大小?

假设我有

myArray = ['item1', 'item2']

我试过了

for (var item in myArray) {console.log(item)}

它打印     0     1个

我希望有     项目1     item2

是否有其他无需使用即可使用的语法

for (var i = 0; i < myArray.length; i++)
trans by 2020-01-17T23:23:51Z

通过POST请求将数据从node.js服务器发送到node.js

我正在尝试通过username请求将数据从node.js服务器发送到另一个node.js服务器。 我在“客户端” node.js中的操作如下:

var options = {
    host: 'my.url',
    port: 80,
    path: '/login',
    method: 'POST'
};

var req = http.request(options, function(res){
    console.log('status: ' + res.statusCode);
    console.log('headers: ' + JSON.stringify(res.headers));
    res.setEncoding('utf8');
    res.on('data', function(chunk){
        console.log("body: " + chunk);
    });
});

req.on('error', function(e) {
    console.log('problem with request: ' + e.message);
});

// write data to request body
req.write('data\n');
req.write('data\n');
req.end();

该块或多或少是从node.js网站获取的,因此应该正确。 我唯一看不到的是如何在username变量中包括用户名和密码以实际登录。 这是我处理服务器node.js中的数据的方式(我使用express):

app.post('/login', function(req, res){
    var user = {};
    user.username = req.body.username;
    user.password = req.body.password;
        ...
});

如何将那些usernamepassword字段添加到options变量中以使其登录?

谢谢

trans by 2020-01-17T23:14:28Z

macos-M上的NodeJS错误“ EMFILE,打开的文件太多”

有一段时间我遇到以下错误:

Error: EMFILE, too many open files  '/Users/blagus/Gallery/Websites/Nicsware/Pills/resources/core/auth.node.js'
    at Object.fs.openSync (fs.js:427:18)
    at Object.fs.readFileSync (fs.js:284:15)
    at Object.Module._extensions..js (module.js:473:44)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at instController  (/Users/blagus/Gallery/Websites/Nicsware/Pills/engine/mvc.node.js:79:31)
    at init (/Users/blagus/Gallery/Websites/Nicsware/Pills/engine/mvc.node.js:57:8)
    at route (/Users/blagus/Gallery/Websites/Nicsware/Pills/engine/dispatcher.node.js:268:36)

调用此文件的代码行(mvc.node.js:79)是

    this.currentRoute.class = require( controllerFile )[dispatchClass].bind( this );

(这是我正在创建的框架)

如您所见,文件auth.node.js由REQUIRE调用,因此给定的gracefullFS和类似解决方案不适合。 此外,此问题仅发生在MacOS上。 在Ubuntu中似乎可以正常工作。

有什么想法吗?

trans by 2020-01-17T18:07:10Z

node.js-错误:UNABLE_TO_VERIFY_LEAF_SIGNATURE Phonegap安装

我正在尝试在Ubuntu中安装Phonegap。 NodeJS的安装成功,但是我无法安装Phonegap本身。 这是终端的错误输出:

test@test-VirtualBox:~$ sudo npm install -g phonegap
npm http GET https://registry.npmjs.org/phonegap
npm http GET https://registry.npmjs.org/phonegap
npm http GET https://registry.npmjs.org/phonegap
npm ERR! Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE
npm ERR!     at SecurePair.<anonymous> (tls.js:1350:32)
npm ERR!     at SecurePair.EventEmitter.emit (events.js:92:17)
npm ERR!     at SecurePair.maybeInitFinished (tls.js:963:10)
npm ERR!     at CleartextStream.read [as _read] (tls.js:463:15)
npm ERR!     at CleartextStream.Readable.read (_stream_readable.js:320:10)
npm ERR!     at EncryptedStream.write [as _write] (tls.js:366:25)
npm ERR!     at doWrite (_stream_writable.js:219:10)
npm ERR!     at writeOrBuffer (_stream_writable.js:209:5)
npm ERR!     at EncryptedStream.Writable.write (_stream_writable.js:180:11)
npm ERR!     at write (_stream_readable.js:573:24)
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://bugs.debian.org/npm>
npm ERR! or use
npm ERR!     reportbug --attach /home/test/npm-debug.log npm

npm ERR! System Linux 3.11.0-14-generic
npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" "-g" "phonegap"
npm ERR! cwd /home/test
npm ERR! node -v v0.10.15
npm ERR! npm -v 1.2.18
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/test/npm-debug.log
npm ERR! not ok code 0

任何帮助,将不胜感激。

trans by 2020-01-17T11:26:41Z

javascript-如何获取在另一个mod中定义的猫鼬数据库架构

这是我的文件夹结构:

+-- express_example
|---- app.js
|---- models
|-------- songs.js
|-------- albums.js
|---- and another files of expressjs

我在Songs.js文件中的代码

var mongoose = require('mongoose')
, Schema = mongoose.Schema
, ObjectId = Schema.ObjectId;

var SongSchema = new Schema({
name: {type: String, default: 'songname'}
, link: {type: String, default: './data/train.mp3'}
, date: {type: Date, default: Date.now()}
, position: {type: Number, default: 0}
, weekOnChart: {type: Number, default: 0}
, listend: {type: Number, default: 0}
});

module.exports = mongoose.model('Song', SongSchema);

这是我在文件albums.js中的代码

var mongoose = require('mongoose')
, Schema = mongoose.Schema
, ObjectId = Schema.ObjectId;

var AlbumSchema = new Schema({
name: {type: String, default: 'songname'}
, thumbnail: {type:String, default: './images/U1.jpg'}
, date: {type: Date, default: Date.now()}
, songs: [SongSchema]
});

module.exports = mongoose.model('Album', AlbumSchema);


如何使Albums.js知道要定义的SongSchema

trans by 2020-01-16T17:48:21Z

node.js-如何设置useMongoClient(Mongoose 4.11.0)?

这是我用来连接数据库的代码:

private connectDatabase(databaseUri: string): Promise<Mongoose.Connection> {
    return Mongoose.connect(databaseUri).then(() => {
        debug('Connected to MongoDB at %O', databaseUri);
        return Mongoose.connection;
    });
}

今天,我将Mongoose更新到版本4.11.0,并且在运行测试时收到此警告:

(node:4138) DeprecationWarning: `open()` is deprecated in mongoose >= 4.11.0,
use `openUri()` instead, or set the `useMongoClient` option if using `connect()`
or `createConnection()`

我找不到有关如何“设置useMongoClient”的任何信息。

你们知道怎么做吗?

trans by 2020-01-16T11:57:11Z

javascript-相当于window [“ myvar”] = value的node.js?

window["myvar"] = value的node.js等价于什么?

trans by 2020-01-15T22:03:13Z

循环-Node.js-使用异步库-带obj的async.foreach

我正在使用节点异步库-[https://github.com/caolan/async#forEach],想遍历一个对象并打印出其索引键。 一旦完成,我想执行一个回调。

这是我到目前为止的内容,但从未看到'iterating done'

    async.forEach(Object.keys(dataObj), function (err, callback){ 
        console.log('*****');

    }, function() {
        console.log('iterating done');
    });  
  1. 为什么不调用最终函数?

  2. 如何打印对象索引键?

trans by 2020-01-15T19:17:38Z

在运行单元测试时,如何抑制来自node.js应用程序的应用程序日志消息?

在使用mocha和supertest对我的node.js应用程序(基本上是REST后端)进行单元测试时,我只需要屏幕上特定于测试的消息,但标准输出也被应用程序日志消息所困扰。

我从以下单元测试开始:

mocha -R spec .

...并获得此输出(这是不应该的):

[App] Listening on port 3000 ...
[App] Starting app, hooray!

  Project API
    GET /projects
[App] entering "projects" module ...
      √ should return an array of projects (317ms)

我用[App]标记了应用程序日志消息。 我真正想要的是单元测试的输出:

  Project API
    GET /projects
      √ should return an array of projects (317ms)

我如何抑制应用程序插入Mocha的报告程序输出的console.log / warn / error输出?

解:

遵循dankohn的方法,我最终像这样解决了我的问题(使用Winston进行日志记录):

(在节点的“主”服务器文件中,server.js :)

if (process.env.NODE_ENV !== 'test') {
    logger = new (winston.Logger)({
        transports: [
            new (winston.transports.Console)(),
            new (winston.transports.File)({ filename: 'foo.log' })
        ]
    });
} else {
    // while testing, log only to file, leaving stdout free for unit test status messages
    logger = new (winston.Logger)({
        transports: [
            new (winston.transports.File)({ filename: 'foo.log' })
        ]
    });
}

...并设置env变量,每个单元测试文件都以:

process.env.NODE_ENV = 'test';
trans by 2020-01-14T13:47:35Z

sql-Sequelize.js中的“ belongsTo”与“ hasMany”

AlbumA.hasMany(B)和有什么不一样

Artist = sequelize.define('Artist', {});
Album = sequelize.define('Albums', {});

Album.belongsTo(Artist, foreignKey: 'album_belongsl_artist');
Artist.hasMany(Album, foreignKey: 'artist_hasmany_albums');

是否在两种情况下都在Album中创建从属表?

trans by 2020-01-14T02:27:12Z

缓冲区-Node.js将十六进制数转换为byteArray

我想使用蓝牙连接发送原始缓冲区。 内容是一个十六进制数字。 目前,我将数字手动拆分为一个字节数组。 有什么功能可以帮助我将数字转换为字节数组?

//var data = 0x250001000192CD0000002F6D6E742F72;
var data = new Buffer([0x25,0x00,0x01,0x00,0x01,0x92,0xCD,0x00,0x00,0x00,0x2F,0x6D,0x6E,0x74,0x2F,0x72]);
serialPort.write(data);
trans by 2020-01-13T15:53:04Z

node.js-NodeJ中的HTTPS请求

我正在尝试编写一个NodeJS应用,该应用将使用https包中的request方法与OpenShift REST API进行通信。 这是代码:

var https = require('https');

var options = {
  host: 'openshift.redhat.com',
  port: 443,
  path: '/broker/rest/api',
  method: 'GET'
};

var req = https.request(options, function(res) {
  console.log(res.statusCode);
  res.on('data', function(d) {
    process.stdout.write(d);
  });
});
req.end();

req.on('error', function(e) {
  console.error(e);
});

但这给我一个错误(返回状态码500)。 当我在命令行上使用curl进行相同的操作时,

curl -k -X GET https://openshift.redhat.com/broker/rest/api

我从服务器得到正确的响应。

代码有什么问题吗?

trans by 2020-01-13T13:23:53Z

子进程-从Node.js运行Shell命令而不缓冲输出

我正在尝试从Node.js启动shell命令,而没有重定向该命令的输入和输出-就像使用shell脚本或使用Ruby的child_process命令将其shell化为命令一样。 如果子进程想要写入STDOUT,则我希望它直接进入控制台(或重定向,如果Node应用程序的输出已重定向)。

Node似乎没有任何直接的方法来执行此操作。 看来运行另一个进程的唯一方法是使用child_process,它始终将子进程的输入和输出重定向到管道。 我可以编写代码以接受来自那些管道的数据,然后将其写入我进程的STDOUT和STDERR,但是如果这样做,API会迫使我牺牲一些灵活性。

我想要两个功能:

  • Shell语法。 我希望能够在命令之间传递输出,或运行Windows批处理文件。
  • 无限的输出。 如果我要使用编译器,并且它想生成兆字节的编译器警告,则希望它们全部在屏幕上滚动(直到用户厌倦了它并按Ctrl + C)。

看来Node要强迫我在这两个功能之间进行选择。

  • 如果我想要无限量的输出,我可以使用child_process.execFile,然后对on('data')使用child_process.execFile和同样的方法,它将愉快地传输数据,直到母牛回家。 不幸的是,exec不支持shell语法。
  • 如果我需要shell语法,则可以使用child_process.execFile。但是child_process.execFile坚持为我缓冲子进程的STDOUT和STDERR并在最后将它们全部提供给我,这限制了这些缓冲区的大小(可配置,默认为200K)。 如果我想查看生成的输出,我仍然可以钩住on('data')事件,但是exec仍然会将数据也添加到其缓冲区中。 当数据量超过预定义的缓冲区大小时,exec将终止子进程。

(还有child_process.execFile,从灵活性的角度来看,这是两全其美的情况:没有shell语法,但是您仍然必须限制期望的输出量。)

我想念什么吗? 有什么方法可以只封装到Node中的子进程,而不重定向其输入和输出吗? 支持shell语法并且在预定义数量的输出后不会消失的东西,就像shell脚本,Ruby等中可用的东西一样吗?

trans by 2020-01-13T12:33:16Z

亚马逊EC2-如何使EC2上的Node.js服务器永远运行?

如您所见,我是新来的...

我建立了第一个网站,建立了第一个Node.js服务器来为其提供服务,然后将所有内容实时发布到EC2上。

我在我的EC2 IP地址上测试了所有内容,似乎一切正常。

现在直到现在,我一直在本地测试我的应用程序,因此每当我关闭终端时,app.js都将停止运行,因此在localhost上将不会提供任何服务,这是有道理的。

现在,我的服务器位于EC2上,每当我关闭终端时,都会发生同样的事情(“显然”,有人会说..)。

所以我的问题是如何使Node.js服务器在EC2上运行,例如...永远..以便我的网站永远保持生存.. :)

我读了一些有关名为“ forever”的节点模块的信息,但我想知道(是新的还是全部。)为什么“ forever”功能不是Node.js-EC2系统的默认设置?

我的意思是,如果我错了,请纠正我,但这不是设置Web服务器并将其实时发布以使其永远保持生命的全部意义吗? 这不是服务器应该做什么(无限侦听请求)吗? 如果是这种情况,为什么我们需要额外的模块/设置来实现?

谢谢您的帮助。正如您所知,我不仅在寻找解决方案,而且在解释,因为我真的很困惑。:-)

编辑(您可能需要一些详细信息)-在EC2上安装我的应用程序之后,这些是我在终端上执行的步骤(顺便说一句,该应用程序在app.js上运行):

  • 我在终奌站

  • 登录到Amazon计算机后,然后转到相关文件夹并执行节点app.js。

  • 机器中有3个文件夹:app.js*name of my app**name of my app*

  • app.js居住在*name of my app*

  • 之后,该站点将在我的EC2 IP上运行

  • 一旦关闭终端,一切都将关闭

trans by 2020-01-13T11:04:30Z

node.js-序列化OR条件obj

通过创建这样的对象

var condition=
{
  where:
  {
     LastName:"Doe",
     FirstName:["John","Jane"],
     Age:{
       gt:18
     }
  }    
}

并传递给

Student.findAll(condition)
.success(function(students){

})

它可以像这样漂亮地生成SQL

"SELECT * FROM Student WHERE LastName='Doe' AND FirstName in ("John","Jane") AND Age>18"

但是,这都是“ AND”条件,如何通过创建条件对象来生成“ OR”条件?

trans by 2020-01-13T07:20:58Z

javascript-Node.js:从请求获取路径

我有一个名为“ localhost:3000 / returnStat”的服务,该服务应将文件路径作为参数。 例如“ /BackupFolder/toto/tata/titi/myfile.txt”。

如何在浏览器上测试此服务?例如,如何使用Express格式化此请求?

exports.returnStat = function(req, res) {

var fs = require('fs');
var neededstats = [];
var p = __dirname + '/' + req.params.filepath;

fs.stat(p, function(err, stats) {
    if (err) {
        throw err;
    }
    neededstats.push(stats.mtime);
    neededstats.push(stats.size);
    res.send(neededstats);
});
};
trans by 2020-01-13T05:32:05Z

javascript-node.js中意外的保留字导入

我正在尝试运行node.js后端服务器。 我在Node.js文件中导入时收到错误node core.module.js

文件node core.module.js中的行是:

'use strict';
import lodashMixins from './lodashMixins.js'
... other imports and configurations ...

我启动简单的命令:node core.module.js

这不是罕见的错误,但通常会在其他库中发生。 我还没有看到Node.js的解决方案。 我该如何解决? 我正在使用Windows Server。

编辑:我发现它是ES6,但是我怎么启动它呢? 它看起来像是应用程序的后端,但是我不知道应该使用什么命令来正确启动它。

trans by 2020-01-13T00:53:45Z