javascript

java

python

c#

android

c++

node.js

php

html

jquery

ios

reactjs

css

.net

git

ruby-on-rails

sql

c

ruby

string

generator-node.js是否支持yield?

有什么方法可以让生成器进入node.js?

我目前在用回调伪造它们,但我必须记住检查生成器函数内部的回调响应,这会产生大量if (callback(arg) === false) return;

我想要类似python的内容:

for p in primes():
  if p > 100: break
  do_something(p)

我正在像这样在节点中做的事情:

primes(function(p) {
  if (p > 100) return false;
  do_something(p)
});

也许像coffeescript这样的东西可以帮助您?

trans by 2020-06-21T06:09:25Z

javascript-与Node.js的长时间连接,如何减少内存使用并防止内存泄漏? 也与V8和webkit-devtools相关

这是我要做的事情:我正在开发Node.js http服务器,该服务器将保持长连接,以便从一台计算机中的成千上万个移动客户端中推送目的(与redis协作)。

测试环境:

1.80GHz*2 CPU/2GB RAM/Unbuntu12.04/Node.js 0.8.16

第一次,我使用了“ express”模块,通过它可以在交换之前达到约12万个并发连接,这意味着RAM不足。 然后,我切换到本机“ http”模块,并发性达到约160k。 但是我意识到本地http模块中仍然不需要太多功能,因此我将其切换到本地“ net”模块(这意味着我需要自己处理http协议,但这没关系)。 现在,我每台机器可以达到约25万个并发连接。

这是我的代码的主要结构:

var net = require('net');
var redis = require('redis');

var pendingClients = {};

var redisClient = redis.createClient(26379, 'localhost');
redisClient.on('message', function (channel, message) {
    var client = pendingClients[channel];
    if (client) {
        client.res.write(message);
    }
});

var server = net.createServer(function (socket) {
    var buffer = '';
    socket.setEncoding('utf-8');
    socket.on('data', onData);

    function onData(chunk) {
        buffer += chunk;
        // Parse request data.
        // ...

        if ('I have got all I need') {
            socket.removeListener('data', onData);

            var req = {
                clientId: 'whatever'
            };
            var res = new ServerResponse(socket);
            server.emit('request', req, res);
        }  
    }
});

server.on('request', function (req, res) {
    if (res.socket.destroyed) {            
        return;
    }

    pendingClinets[req.clientId] = {
        res: res
    };

    redisClient.subscribe(req.clientId);

    res.socket.on('error', function (err) {
        console.log(err);
    });

    res.socket.on('close', function () {
        delete pendingClients[req.clientId];

        redisClient.unsubscribe(req.clientId);
    });
});

server.listen(3000);

function ServerResponse(socket) {
    this.socket = socket;
}
ServerResponse.prototype.write = function(data) {
    this.socket.write(data);
}

最后,这是我的问题:

  1. 如何减少内存使用量,从而进一步提高并发性?

  2. 我对如何计算Node.js进程的内存使用情况感到非常困惑。 我知道由Chrome V8驱动的Node.js,有process.memoryUsage()api,它返回三个值:rss / heapTotal / heapUsed,它们之间有什么区别,我应该更关注哪一部分,以及它们的确切组成是什么 Node.js进程使用的内存?

  3. 我已经进行了一些测试,但似乎没有问题,我仍然担心内存泄漏。 有什么我需要关注或建议的吗?

  4. 正如我所描述的,我找到了一份有关V8隐藏类的文档,这是否意味着每当像上面的代码一样,将由clientId命名的属性添加到全局对象endingClients中时,都会生成一个新的隐藏类? 剂量会引起内存泄漏吗?

  5. 我使用webkit-devtools-agent分析Node.js进程的堆映射。 我开始了该过程并拍摄了一个堆快照,然后向它发送了1万个请求,并在以后断开了它们的连接,之后我再次拍摄了一个堆快照。 我使用比较透视图来查看这两个快照之间的区别。 这是我得到的:enter image description here有人可以解释吗? (数组)/(编译代码)/(字符串)/命令/数组的数量和大小增加了很多,这是什么意思?

编辑:我如何运行负载测试?
1.首先,我在服务器计算机和客户端计算机上都修改了一些参数(要实现超过60k的并发需要一台客户端计算机,因为一台计算机最多只有60k +端口(以16位表示))
1.1。 在服务器和客户端计算机上,我都修改了文件描述符,在将要运行测试程序的shell中使用了以下命令:

ulimit -Hn 999999
ulimit -Sn 999999

1.2。 在服务器计算机上,我还修改了一些与net / tcp相关的内核参数,最重要的参数是:

net.ipv4.tcp_mem = 786432 1048576 26777216
net.ipv4.tcp_rmem = 4096 16384 33554432
net.ipv4.tcp_wmem = 4096 16384 33554432

1.3。 对于客户端计算机:

net.ipv4.ip_local_port_range = 1024 65535

2.其次,我使用Node.js编写了一个自定义的模拟客户端程序,因为大多数负载测试工具(ab,siege等)都是用于短连接的,但是我使用的是长连接,并且有一些特殊要求。
3.然后,我在一台机器上启动服务器程序,并在其他三台分开的计算机上启动三个客户端程序。

编辑:我确实在一台机器(2GB RAM)上达到了25万个并发连接,但是事实证明,这不是很有意义和实用。 因为当连接建立连接时,我只是让连接挂起,没有别的。 当我尝试向他们发送响应时,并发数下降到了约15万。 根据我的计算,每个连接大约有4KB的内存使用量,我想这与net.ipv4.tcp_wmem有关,我将其设置为4096 16384 33554432,但即使我将其修改为更小的值,也没有任何改变。 我不知道为什么。

编辑:实际上,现在我对每个tcp连接使用多少内存以及单个连接使用的内存的确切组成更感兴趣? 根据我的测试数据:

150k并发消耗了大约1800M RAM(从free -m输出),而Node.js进程大约有600M RSS

然后,我假设这样:

  • (1800M-600M)/ 150k = 8k,这是单个连接的内核TCP堆栈内存使用情况,它由两部分组成:读取缓冲区(4KB)+写入缓冲区(4KB)(实际上,这与我的设置不匹配 上面的net.ipv4.tcp_rmem和net.ipv4.tcp_wmem,系统如何确定这些缓冲区要使用多少内存?)

  • 600M / 150k = 4k,这是单个连接的Node.js内存使用情况

我对吗? 如何在两个方面都减少内存使用量?

如果有我不能很好描述的地方,请告诉我,我会对其进行改进!任何解释或建议,将不胜感激,谢谢!

trans by 2020-06-20T22:03:38Z

javascript-检查一个数组中的每个元素是否在第二个数组中

我有两个数组,我想检查arr2中的每个元素是否在29317156484619970970中。如果在arr2中重复一个元素的值,则它在arr1中需要相等的次数。 最好的方法是什么?

arr1 = [1, 2, 3, 4]
arr2 = [1, 2]

checkSuperbag(arr1, arr2)
> true //both 1 and 2 are in arr1

arr1 = [1, 2, 3, 4]
arr2 = [1, 2, 5]

checkSuperbag(arr1, arr2)
> false //5 is not in arr1

arr1 = [1, 2, 3]
arr2 = [1, 2, 3, 3]

checkSuperbag(arr1, arr2)
> false //3 is not in arr1 twice
trans by 2020-06-20T19:32:55Z

如何使Node.JS Express仅在localhost上侦听?

我有一个反向代理背后的应用程序,我希望它仅侦听localhost / 127.0.0.1.。

我希望这可以工作:

http.Server#listen()

要么

http.Server#listen()

...但是我得到一个错误:

node.js:201
    throw e; // process.nextTick error, or 'error' event on first tick
          ^
TypeError: Cannot read property 'port' of null
    at Object.<anonymous> (/home/ctoledo/hive-go/go.js:204:76)
    at Module._compile (module.js:441:26)
    at Object..js (module.js:459:10)
    at Module.load (module.js:348:31)
    at Function._load (module.js:308:12)
    at Array.0 (module.js:479:10)
    at EventEmitter._tickCallback (node.js:192:40)

在不指定主机名的情况下运行应用程序可以正常工作,例如http.Server#listen()

我正在运行Node v0.6.14和express@2.5.5,并阅读了此Google网上论坛的讨论,并在Express application.js中找到此注释,并说:“此方法采用与节点的http.Server#listen()相同的参数。”

谢谢你的帮助。

trans by 2020-06-20T19:30:42Z

node.js-使用npm运行bash脚本

我想尝试使用npm为Web应用程序运行各种构建任务。 我知道我可以通过在build.sh上添加build.sh字段来做到这一点,如下所示:

"scripts": {
   "build": "some build command"
},

当您使用带有许多选项的更复杂的命令时,这变得笨拙。 是否有可能将这些命令移至bash脚本或类似的东西? 就像是:

"scripts": {
   "build": "build.sh"
},

build.sh在哪里执行build.sh文件中的命令?

阅读这篇文章似乎是这样,但是我不清楚我应该将build.sh文件放在什么位置,或者我是否丢失了什么。

trans by 2020-06-20T07:34:42Z

ssl-如何为HTTPS Node.js服务器使用自签名证书?

我已经开始为API编写包装,该包装要求所有请求都通过HTTPS进行。 我不想在开发和测试它时向实际的API发出请求,而是希望在本地运行自己的服务器来模拟响应。

我对如何生成创建HTTPS服务器并向其发送请求所需的证书感到困惑。

我的服务器看起来像这样:

var options = {
  key: fs.readFileSync('./key.pem'),
  cert: fs.readFileSync('./cert.pem')
};

https.createServer(options, function(req, res) {
  res.writeHead(200);
  res.end('OK\n');
}).listen(8000);

Pem文件是使用以下命令生成的:

openssl genrsa 1024 > key.pem
openssl req -x509 -new -key key.pem > cert.pem

一个请求看起来像这样:

var options = {
  host: 'localhost',
  port: 8000,
  path: '/api/v1/test'
};

https.request(options, function(res) {
  res.pipe(process.stdout);
}).end();

通过此设置,我得到ca,所以我想我需要为该请求添加ca选项。

所以我的问题是我应该如何生成以下内容:

  1. 服务器ca
  2. The server ca?
  3. ca的要求?

我已经阅读了一些有关使用openssl生成自签名证书的内容,但似乎无法将其束缚住,也无法弄清楚在节点代码中的哪个位置使用哪些密钥和证书。

更新资料

该API提供了要使用的CA证书,而不是默认证书。 以下代码使用其证书进行工作,这就是我想在本地复制的内容。

var ca = fs.readFileSync('./certificate.pem');

var options = {
  host: 'example.com',
  path: '/api/v1/test',
  ca: ca
};
options.agent = new https.Agent(options);

https.request(options, function(res) {
  res.pipe(process.stdout);
}).end();
trans by 2020-06-20T07:21:33Z

node.js-如何在VSCode中将环境变量添加到launch.json

在node.js项目上使用新的VSCode编辑器。 我正在尝试通过编辑launch.json文件来配置“启动”配置文件以进行调试。 我需要将连接字符串设置为环境变量。 根据launch.json文件中的注释:

// Environment variables passed to the program.
"env": { }

我尝试像这样添加我的环境变量:

"env":
{
"CONNECTION_STRING": "Data Source=server;Initial Catalog=catalog;User ID=uid;Password=pwd;MultipleActiveResultSets=true"
}

当我尝试启动我的应用程序时,这会导致错误; “ OpenDebug进程意外终止”。 我尚未找到任何可能解释问题所在的日志文件等。

我知道当我设置环境变量并从标准命令提示符启动我的应用程序时,此应用程序可以正常工作。 如果我在launch.json文件中注释掉变量,该应用程序还将按预期运行; 我只是无法连接到数据库。

我以为我在launch.json文件中使用了错误的格式,但是我还没有找到任何使这项工作的方法。

有任何想法吗?

trans by 2020-06-19T23:29:41Z

javascript-使用适用于Node.js的AWS开发工具包将二进制文件上传到S3

更新:为了将来提供参考,Amazon现在从询问时的内容中更新了文档。 根据@Loren Segal在下面的评论:

我们已更正了最新预览版中的文档,以正确记录此参数。 对不起,混淆了!


我正在试用适用于Node.Js的AWS开发工具包的开发人员预览,并希望使用putObject将压缩的tarball上传到S3。

根据文档,putObject参数应为...

正文-(Base64编码数据)

...因此,我正在尝试以下代码...

var AWS = require('aws-sdk'),
    fs = require('fs');

// For dev purposes only
AWS.config.update({ accessKeyId: 'key', secretAccessKey: 'secret' });

// Read in the file, convert it to base64, store to S3
fs.readFile('myarchive.tgz', function (err, data) {
  if (err) { throw err; }

  var base64data = new Buffer(data, 'binary').toString('base64');

  var s3 = new AWS.S3();
  s3.client.putObject({
    Bucket: 'mybucketname',
    Key: 'myarchive.tgz',
    Body: base64data
  }).done(function (resp) {
    console.log('Successfully uploaded package.');
  });

});

然后我可以在S3中看到该文件,但是如果我下载该文件并尝试对其进行解压缩,则会收到文件已损坏的错误消息。 因此,看来我的“ base64编码数据”方法已关闭。

有人可以帮我使用putObject上传二进制文件吗?

trans by 2020-06-19T23:27:11Z

javascript-将Node JS用于大型项目

NodeJS是大型服务器端应用程序的良好框架/代码库吗? 我要开发的是一个大型应用程序,它将需要HTTP事务(状态)和大量并发用户。

根据我的在线阅读,对于大型程序,NodeJS并不是最好的工具。 我遇到的情况如下:

  • NodeJS在JavaScript上运行,而JavaScript在事件循环上运行,而事件循环在批量使用时效率不高。
  • NodeJS可能是非阻塞的,但是所有请求都在单个线程中处理,因此当处理许多请求时,这可能会造成一些瓶颈。
  • NodeJS构建在其自己的HTTP服务器之上,因此将来的维护将需要其自己的sysadmin / developer混合体来处理该应用程序。
  • NodeJS没有经过充分测试和多样化的软件,可以帮助您构建更大的应用程序。

有什么我想念的吗? NodeJS真的功能强大吗?

trans by 2020-06-19T15:55:36Z

javascript-使用Socket.i将客户端连接到服务器

我对node.js及其插件是相对较新的,因此这可能是一个初学者的问题。

我试图在网络服务器上获得一个简单的HTML页面,该页面连接到另一个使用websocket.io运行node.js的服务器。

我的代码如下所示:

客户

<script src="socket.io/socket.io.js"></script>
<script>
    // Create SocketIO instance, connect

    var socket = new io.Socket();

    socket.connect('http://127.0.0.1:8080'); 

    // Add a connect listener
    socket.on('connect',function() {
      console.log('Client has connected to the server!');
    });
    // Add a connect listener
    socket.on('message',function(data) {
      console.log('Received a message from the server!',data);
    });
    // Add a disconnect listener
    socket.on('disconnect',function() {
      console.log('The client has disconnected!');
    });

    // Sends a message to the server via sockets
    function sendMessageToServer(message) {
      socket.send(message);
    };
</script>

服务器端

// Require HTTP module (to start server) and Socket.IO
var http = require('http');
var io = require('socket.io');
var port = 8080;

// Start the server at port 8080
var server = http.createServer(function(req, res){ 
    // Send HTML headers and message
    res.writeHead(200,{ 'Content-Type': 'text/html' }); 
    res.end('<h1>Hello Socket Lover!</h1>');
});

server.listen(port);

// Create a Socket.IO instance, passing it our server
var socket = io.listen(server);

// Add a connect listener
socket.on('connection', function(client){ 
    console.log('Connection to client established');

    // Success!  Now listen to messages to be received
    client.on('message',function(event){ 
        console.log('Received message from client!',event);
    });

    client.on('disconnect',function(){
        clearInterval(interval);
        console.log('Server has disconnected');
    });
});

console.log('Server running at http://127.0.0.1:' + port + '/');

启动服务器工作正常,并且在我的浏览器中运行[http:// localhost:8080]也可以正常工作,并按预期返回“ Hello Socket Lover”。 但是我想让其他页面与套接字对话,而不是从node.js运行页面。

但是,当我运行它时,没有任何反应,Chrome控制台返回:

Failed to load resource            http://undefined/socket.io/1/?t=1333119551736
Failed to load resource            http://undefined/socket.io/1/?t=1333119551735

我整天都在这。 有什么帮助吗?

trans by 2020-06-19T14:52:40Z

node.js-如何将使用Gulp的节点部署到heroku

我正在使用gulp以及gulp插件,例如gulp-minify-css,gulp-uglify等(在我的应用程序中列为npm依赖项)。

另外,我不提交所有生成的文件所在的npm_modules文件夹和公用文件夹。 而且我不知道在部署和设置服务器(已经在寻找公用文件夹)之后如何构建我的应用程序(我有gulp build命令)。

在上传之前先提交似乎是个坏主意。 也许有一些温柔的决定...有什么想法吗?

来自:如何将使用grunt的节点应用程序部署到heroku

trans by 2020-06-19T07:53:17Z

使用Node.js,我得到“错误:EISDIR,已读取”

每当我尝试打开文件时,

events.js:72
        throw er; // Unhandled 'error' event
Error: EISDIR, read
trans by 2020-06-19T07:39:33Z

javascript-如何从grunt任务中运行grunt任务?

我创建了一个新的grunt任务,在其中我想使用grunt-contrib-concat将几个文件连接在一起。

我浏览了文档,但没有发现任何暗示可以执行此操作的提示。 这似乎是一个琐碎的用例,所以我可能只是在看一些东西。

更新1:

我还希望能够从我的自定义任务中配置此任务。

例如,我在自定义任务中创建文件列表。 有了该列表之后,我想将它们传递给concat任务。 我怎样才能做到这一点?

我希望能够做这样的事情。

grunt.task.run('concat', { src: ['file1','file2'], dest: 'out.js'})

更新2:

为了实现我想要的,我必须手动配置grunt任务。 这是一个向我展示我想要的例子。

[HTTPS://GitHub.com/grunt就是/grunt-cont日本/issues/118#issue comment-8482130]

trans by 2020-06-19T07:15:31Z

node.js-MongoDB节点检查objectid是否有效

如何使用Node的驱动程序检查ObjectID是否有效

我试过了 :

var BSON = mongo.BSONPure;
console.log("Validity: "  + BSON.ObjectID.isValid('ddsd'))

但是我不断收到异常,而不是对或错。 (例外只是一个“ throw e; // process.nextTick错误,或“第一次滴答”中的“ error”事件”

trans by 2020-06-19T05:11:46Z

Node.js应用有周期性的缓慢和/或超时(不接受传入的请求)

这个问题正在破坏我的生产服务器的稳定性。

概括地说,基本思想是我的节点服务器有时会间歇性地减慢速度,有时会导致网关超时。 尽我所能从日志中得知,有什么东西阻塞了节点线程(这意味着传入的请求不被接受),但是我一生都无法找出原因。

该问题的严重程度不同。 有时,小于100ms的请求应该花费大约10秒才能完成; 有时它们甚至根本不会被节点服务器接受。 简而言之,似乎某个随机任务正在工作并阻塞节点线程一段时间,从而减慢(甚至阻止)传入的请求; 我可以肯定地说的一件事是,需要修复的症状是“网关超时”。

问题来来往往,没有警告。 我无法将其与CPU使用率,RAM使用率,正常运行时间或任何其他相关统计信息相关联。 我已经看到服务器可以处理较大的负载,然后在较小的负载下出现此错误,因此它似乎与负载无关。 在太平洋标准时间凌晨1点左右看到错误,这是一天中最小的加载时间,这并不罕见! 重新启动节点应用程序似乎可以使问题暂时消失,但这并不能告诉我很多。 我确实想知道这是否可能是node.js中的错误...考虑到它正在杀死我的生产服务器,因此不是很令人欣慰。

  • 我要做的第一件事是确保已将node.js以及我的所有模块(都放在此处)升级到最新版本(0.8.12)。 当然,我也有很多错误捕获器。 我没有做任何时髦的事情,例如将大量内容打印到控制台或写入大量文件。
  • 最初,我认为这是阻止传入套接字的出站HTTP请求,因为快速中间件甚至没有处理入站请求,但是我放弃了理论,因为它看起来像节点线程本身变得很忙。
  • 接下来,我使用JSHint遍历了所有代码,并逐字修正了每个警告,包括一些意外的全局变量(忘记写“ var”),但这无济于事
  • 在那之后,我以为我可能内存不足。 但是,我现在通过nodetime看到的堆快照看起来不错(如下所述)。
  • 仍然认为内存可能是一个问题,我看了看垃圾回收。 我启用了--nouse-idle-notification标志,并在不需要空对象时对NULL对象进行了更多代码优化。
  • 仍然确信内存是问题所在,我添加了--expose-gc标志并执行了gc();。 每分钟命令。 这没有改变任何东西,只是偶尔使请求变慢了一点。
  • 在一次绝望的尝试中,我将“集群”模块设置为使用2个工作程序,并每30分钟自动重新启动一次。 仍然没有运气。
  • 我将ulimit增加到10,000以上,并关注打开的文件。 每个node.js应用程序似乎有<300个打开的文件(或套接字),因此增加ulimit不会产生影响。

我一直在用节点时间记录我的服务器,这是要点:

  • 在Amazon Cloud(m1.large实例)上运行的CentOS 5.2
  • 始终大于5000 MB的可用内存
  • 始终小于150 MB的堆大小
  • CPU占用率始终低于60%

我还检查了我的MongoDB服务器,这些服务器的CPU使用率低于5%,没有任何请求要花费100毫秒以上的时间才能完成,因此我高度怀疑是否存在瓶颈。

我已经(几乎)使用Q-promises(请参见代码示例)包装了所有代码,并且当然避免了像瘟疫一样的Sync()调用。 我曾尝试在测试服务器(OSX)上复制该问题,但运气不佳。 当然,这可能仅仅是因为生产服务器正以许多无法预测的方式被许多人使用,以至于我无法通过压力测试进行复制...

trans by 2020-06-19T02:25:50Z

javascript-npm start vs节点app.js

我是Node的新手,并试图了解App基础知识。 我对为什么这两个命令感到好奇:

节点app.js

--vs--

asl开始

将相同的内容输出到控制台,并似乎继续“侦听”,但是为什么当我尝试访问[http:// localhost:3000]时,只有在运行第一个命令时才得到404。

我看到Express 4似乎具有不同的应用程序结构,但是尽管控制台中的行为相同,为什么一个成功收听却另一个却没有成功?

任何解释都是有帮助的。 谢谢!

trans by 2020-06-18T19:11:59Z

node.js-用ubuntu中的一个命令列出所有全局安装的模块

我正在使用ubuntu 14.04,是否可以将所有全局模块(使用npm安装)打印到命令行。 我怎样才能做到这一点?

trans by 2020-06-18T17:08:48Z

node.js-使用节点的内置调试器检查变量?

我正在尝试使用节点调试器。我正在运行node debug server以运行我的服务器。 然后我有:

...
var Workspace = mongoose.model('Workspace');
debugger;

在这一点上,正如预期的那样,当我运行此代码时,调试器弹出。但是,我希望它可以设置所有当前变量,就像在Chrome自己的调试器中一样。

但:

break in hotplate/node_modules/bd/lib/bd.js:133
132 
133   debugger;
134 
135   // Delete the ID and the version since there's no point,
debug> Workspace
ReferenceError: Workspace is not defined

那么...我实际上如何检查当前变量?

额外的问题:是否可以使用Chrome的开发人员工具(CTRL-J)使其连接到节点并以这种方式工作? (我知道节点检查器,但是它已经过时了……)

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

异步-使用node.js遍历JSON

我有一个需要迭代的JSON文件,如下所示...

{
    "device_id": "8020",
    "data": [{
        "Timestamp": "04-29-11 05:22:39 pm",
        "Start_Value":  0.02,
        "Abstract": 18.60,
        "Editor": 65.20
    }, {
        "Timestamp": "04-29-11 04:22:39 pm",
        "End_Value":  22.22,
        "Text": 8.65,
        "Common": 1.10,
        "Editable": "true",
        "Insert": 6.0
    }]
}

数据中的键并不总是相同的(我只是使用示例,有20个不同的键),因此,我无法设置脚本来静态引用它们以获取值。

否则我可以说

var value1 = json.data.Timestamp;
var value2 = json.data.Start_Value;
var value3 = json.data.Abstract;
etc

过去我在数据节点上使用了一个简单的foreach循环...

foreach ($json->data as $key => $val) {
    switch($key) {
        case 'Timestamp':
            //do this;
        case: 'Start_Value':
            //do this
    }
}

但是不想阻止脚本。 有任何想法吗?

trans by 2020-06-17T18:21:46Z

javascript-与NPM一起安装时找不到Express模块

当我尝试运行express创建的"node -e require.paths"文件时,出现以下错误:

$ node app.js

node.js:134
        throw e; // process.nextTick error, or 'error' event on first tick
        ^
Error: Cannot find module 'express'
    at Function._resolveFilename (module.js:320:11)

当我键入"node -e require.paths"时,我得到2.3.3的返回声明。我使用npm安装express。 我必须按照以下说明手动创建npm:

git clone http://github.com/isaacs/npm.git
cd npm
sudo make install

错误是"node -e require.paths"

在安装npm和express之后,我是否需要做一些事情才能使express看到npm创建的模块?

  • 我的节点是版本:0.4.6
  • 我的快递是版本:2.3.3
  • 我的npm是版本:1.0.6

Express已全局安装。 我使用"node -e require.paths"标志进行安装。


编辑:当我尝试"node -e require.paths"我得到:

[ '/home/user/.node_modules',
  '/home/user/.node_libraries',
  '/usr/local/lib/node' ]

因此,节点未检测到npm安装。 如何获取节点以检测npm安装?

trans by 2020-06-17T15:06:58Z

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