小编Dav*_*sey的帖子

如何使用Node.js解决"无法找到模块"错误?

从GitHub下拉模块并按照说明构建它之后,我尝试使用以下方法将其拉入现有项目中:

> npm install ../faye
Run Code Online (Sandbox Code Playgroud)

这似乎可以解决问题:

> npm list
/home/dave/src/server
??? faye@0.7.1
  ??? cookiejar@1.3.0
  ??? hiredis@0.1.13
  ??? redis@0.7.1
Run Code Online (Sandbox Code Playgroud)

但是Node.js找不到模块:

> node app.js
node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
Error: Cannot find module 'faye'
    at Function._resolveFilename (module.js:334:11)
    at Function._load (module.js:279:25)
    at Module.require (module.js:357:17)
    at require (module.js:368:17)
    at Object.<anonymous> (/home/dave/src/server/app.js:2:12)
    at Module._compile (module.js:432:26)
    at Object..js (module.js:450:10)
    at Module.load (module.js:351:31)
    at Function._load (module.js:310:12)
    at Array.0 (module.js:470:10)
Run Code Online (Sandbox Code Playgroud)

我真的很想了解这里发生了什么,但我对于下一步该看哪里感到有点失落.有什么建议?

node.js

559
推荐指数
14
解决办法
144万
查看次数

NPM清洁模块

有没有办法让npm取消建立node_modules下的所有模块?像npm rebuild那样删除所有构建工件但不重建它们?

node.js npm

131
推荐指数
9
解决办法
16万
查看次数

Pthread互斥断言错误

我在基于linux的(arm)通信应用程序中在不可预测的时间遇到​​以下错误:

pthread_mutex_lock.c:82: __pthread_mutex_lock: Assertion `mutex->__data.__owner == 0' failed.
Run Code Online (Sandbox Code Playgroud)

谷歌出现了很多关于这个错误的引用,但很少有与我的情况相关的信息.我想知道是否有人可以给我一些关于如何解决此错误的想法.有谁知道这个断言的常见原因?

提前致谢.

linux assert mutex glibc pthreads

34
推荐指数
2
解决办法
3万
查看次数

Socket.IO确认交付

在深入研究代码之前,有人可以告诉我在Socket.IO中是否有可用于确认交付的文档?

以下是我迄今为止收集到的内容:

  1. 可以提供回调,以便在确认消息时进行调用
  2. 有一种特殊模式"挥发性",不保证交付
  3. 有一个不是"易变"的默认模式

这给我留下了一些问题:

  1. 如果消息不是易失性的,那么它是如何处理的?它会被无限期缓冲吗?
  2. 如果在合理的时间内无法发送消息,是否有任何方式可以通知?
  3. 如果我想放弃,有没有办法解除消息?

关于如何在时间敏感的应用程序中使用Socket.IO而不回退到易失性模式并使用可提供故障事件和某种程度的可配置性的外部ACK层,我有点不知所措.或者我错过了什么?

node.js socket.io

9
推荐指数
1
解决办法
3636
查看次数

SQL server join与子查询性能问题

我发现在某些情况下查询类似

select 
   usertable.userid,
   (select top 1 name from nametable where userid = usertable.userid) as name 
from usertable 
where active = 1
Run Code Online (Sandbox Code Playgroud)

在SS2008R2中完成的时间比等效的连接查询要长一个数量级

select 
   usertable.userid,
   nametable.name 
from usertable 
left join nametable on nametable.userid = usertable.userid 
where usertable.active = 1
Run Code Online (Sandbox Code Playgroud)

其中两个表都已编入索引并且行数超过100k.有趣的是,在原始查询中插入一个top子句使其与连接查询相同:

select 
    top (select count(*) from usertable where active = 1) usertable.userid,
    (select top 1 name from nametable where userid = usertable.userid) as name 
from usertable 
where active = 1
Run Code Online (Sandbox Code Playgroud)

有没有人知道为什么原始查询表现如此糟糕?

sql sql-server join subquery

6
推荐指数
1
解决办法
9346
查看次数

Node.js特定于模块的静态资源

是否有一种优雅的方法将静态客户端文件资源(脚本,图像等)捆绑到Express模块​​中并系统地避免命名冲突?注册静态对象的模块特定实例很容易,如下所示:

app.use(express.static(modulePath + '/public'));
app.use(express.static(__dirname + '/public'));
Run Code Online (Sandbox Code Playgroud)

但是如果两个目录都包含一个"styles.css"文件,那么模块中的那个文件似乎将会删除该应用程序的那个文件.模块public中的子目录可用于避免此问题,但我真正想要的是一种将模块资源映射到任意路径的方法,以便

http://localhost:3000/mymodule/styles.css => <modulePath>/public/styles.css
http://localhost:3000/styles.css => <appPath>/public/styles.css
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?我已经用编码技巧完成了它,所以我真的在寻找推荐的方法来完成它.此外,如果我遗漏了一些使这完全没必要的关键概念,我也想了解这一点.

static router node.js express

4
推荐指数
1
解决办法
3136
查看次数

标签 统计

node.js ×4

assert ×1

express ×1

glibc ×1

join ×1

linux ×1

mutex ×1

npm ×1

pthreads ×1

router ×1

socket.io ×1

sql ×1

sql-server ×1

static ×1

subquery ×1