天道酬勤,学无止境

node.js

我该怎么办这个错误:require('connect').json() 是未定义的(What should I do for this error: require('connect').json() is undefined)

问题 当我输入gulp test ,出现此错误: require('connect').json() is undefined. . 我应该怎么办? 详细错误信息如下: tianjiedeMacBook-Pro:meiyanapp tianjie$ gulp test /Users/tianjie/meiyanruhua/meiyanapp/node_modules/karma/lib/middleware/runner.js:11 var json = require('connect').json(); ^ TypeError: undefined is not a function at Object.<anonymous> (/Users/tianjie/meiyanruhua/meiyanapp/node_modules/karma/lib/middleware/runner.js:11:31) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Module.require

2021-09-20 03:40:26    分类:技术分享    json   node.js   npm   connect

运行工作缓慢(npm run <cmd> works slow)

问题 我曾经通过 Makefile 运行各种命令,但对于 nodejs 项目 package.json 是更合适的地方。 通过 npm 运行命令效果很好,但与命令时间执行相比非常慢。 $ time ./node_modules/.bin/jshint . && ./node_modules/.bin/jscs . real 0m0.759s user 0m0.524s sys 0m0.085s No code style errors found. $ time npm run lint > @ lint /path/to/project > jshint . && jscs . No code style errors found. real 0m2.246s user 0m1.637s sys 0m0.277s 有可能加快吗? 更新。 我的 package.json: { "devDependencies": { "jscs": "^1.12.0", "jshint": "^2.6.3" }, "scripts": { "lint": "jshint . && jscs ." } } 更新2。 我以错误的方式测量时间。 甘特在他的评论中指出了这一点。 现在这两个时间看起来很相似(100 毫秒的差异)。 $ time sh -c './node_modules/.bin

2021-09-20 03:29:32    分类:技术分享    node.js   performance   npm

使用递归的异步数据库调用(Async db calls using recursion)

问题 我需要递归下降链表数据库树 item 1-> item 2 -> item 3 -> item 4 -> item 5 -> item 6 -> item 7 -> item 8 我的伪代码是 var getItems = function(itemid) { db.getitem(itemid, function(item) { item.items.forEach(function(subitem) { getItems(subitem.id) }) }) getItems(1) 然而, db.getItem是一个异步函数 我想返回一个与图表结构相同的 JS 对象给顶级调用者 实现这一目标的最佳方法是什么? 我不知道预先的结构(即不知道每个项目的项目数量,或者树中任何分支的深度)所以我不知道我需要处理的项目数量 我尝试了异步库的各种方法,但似乎都没有处理递归 回答1 这就是强并发原语大放异彩的地方。 Promises 让你很容易做到这一点: // with bluebird this is var getItem = Promise.promisify(db.getitem); var getItem = function(itemid){ return new Promise(function(resolve, reject){ db.getitem(itemid

2021-09-20 02:06:34    分类:技术分享    javascript   node.js   asynchronous   recursion

如何在 MongoDB 中找到类似的文档?(How can I find similar documents in MongoDB?)

问题 我有类似于以下内容的食物数据库列表: { Name: "burger", ingredients: [ {Item:"bread"}, {Item:"cheese"}, {Item:"tomato"} ] } 如何找到ingredients中包含最相似项目的文档? 回答1 首先,你的数据应该被改造如下: { name: "Burger", ingredients: [ "bread", "cheese", "tomato", "beef" ] } 额外的“项目”不会添加任何附加信息,也不会以任何方式帮助访问数据。 接下来,您需要创建一个文本索引。 文档指出 text索引可以包括其值为字符串或字符串元素数组的任何字段。 所以我们简单地做一个 db.collection.ensureIndex({"ingredients":"text"}) 现在我们可以进行 $text 搜索: db.collection.find( { $text: { $search: "bread beef" } }, { score: { $meta: "textScore" } } ).sort( { score: { $meta: "textScore" } } ) 这应该给你最相关的文件。 但是,您还可以对直接匹配进行非文本搜索: db.collection.find({ingredients

2021-09-20 02:02:10    分类:技术分享    node.js   mongodb   mongoose

KeystoneJS:管理 UI 中的关系未更新(KeystoneJS: Relationships in Admin UI not updating)

问题 我正在自定义 KeystoneJS,但遇到了一个问题,我的管理 UI 中的关系列表似乎无法更新。 具体来说,我正在查看具有在 Post.categories 字段上定义的关系的默认 Post 和 Post Categories 模型。 如果我添加一个类别,它不会显示为创建或编辑帖子时的选项。 是否有某种数据缓存正在进行? 有没有人看到这个问题,我没有看到任何错误,我可以确认类别已经在 MongoDB 中创建,前端可以很好地查看和显示类别。 谢谢 回答1 这是 Keystone v0.3 中的一个错误。 如果你去下面的链接 https://github.com/keystonejs/keystone/blob/master/docs/guides/v0.3-to-v4.0-Upgrade-Guide.md#user-content-other-gotchas 它告诉您需要更新到 v4.0。

2021-09-20 01:51:58    分类:技术分享    node.js   mongodb   keystonejs

npm 开始执行许多预启动脚本(npm starts to execute many prestart scripts)

问题 好的,我有一个使用 npm 的项目。 我需要它来编译几个 .coffee 脚本。 我需要执行多个预启动脚本,例如: "scripts": { "prestart": "coffee -c ./file1.coffee", "prestart": "coffee -c ./file2.coffee", "prestart": "coffee -c ./file3.coffee", "prestart": "coffee -c ./file4.coffee", "start": "node ./file1.js" }, 但它似乎只执行最后一个,并且它不允许我在一个脚本上附加许多脚本,例如: "prestart": "coffee -c ./file1.coffee; coffee -c./file2.coffee" 我能做什么? 回答1 将它们包装在父脚本中 "scripts": { "prestart": "sh ./make-coffee.sh", "start": "node ./file1.js" }, //make-coffee.sh #!/bin/bash coffee -c ./file1.coffee coffee -c ./file2.coffee coffee -c ./file3.coffee coffee -c ./file4.coffee 或另一个(仅限

2021-09-20 01:49:48    分类:技术分享    node.js   npm

passport.js 是否支持 ajax?(Does the passport.js support ajax?)

问题 我想使用passport.js 进行ajax 登录。 我有设置passport.js的常用代码: //route app.post('/api/auth/login', passport.authenticate('local-login', { successRedirect: '/', failureRedirect: '/login' })); //config strategy passport.use('local-login', new LocalStrategy({ usernameField: 'email', passwordField: 'password', passReqToCallback: true }, loginUser)); var loginUser = function(req, email, password, done) { UserRepo.getOne({ 'local.email': email }).done(function(user) { if (!user || !user.validPassword(password)) { return done(null, false, { message: 'user or password is incorrect' }); } return done(null, user)

2021-09-20 01:44:05    分类:技术分享    node.js   reactjs   passport.js   passport-local

passport.js 是否支持 ajax?(Does the passport.js support ajax?)

问题 我想使用passport.js 进行ajax 登录。 我有设置passport.js的常用代码: //route app.post('/api/auth/login', passport.authenticate('local-login', { successRedirect: '/', failureRedirect: '/login' })); //config strategy passport.use('local-login', new LocalStrategy({ usernameField: 'email', passwordField: 'password', passReqToCallback: true }, loginUser)); var loginUser = function(req, email, password, done) { UserRepo.getOne({ 'local.email': email }).done(function(user) { if (!user || !user.validPassword(password)) { return done(null, false, { message: 'user or password is incorrect' }); } return done(null, user)

2021-09-20 01:42:42    分类:技术分享    node.js   reactjs   passport.js   passport-local

使用 node-inspector 调试 karma-jasmine 测试(Debugging karma-jasmine tests with node-inspector)

问题 与使用节点检查器调试茉莉花节点测试几乎相同的问题但是有人知道如何使用节点检查器和业力吗? 回答1 从 NPM 全局安装节点检查器: npm install -g node-inspector 然后启动节点检查器并使进程后台运行(使用 fg 将其带回前台并杀死 %1 以停止它): node-inspector & 然后像在调试模式下一样启动你的测试运行器 node --inspect ./node_modules/karma/bin/karma start 然后从本地环回连接到检查器。 要开始调试,请在 Chrome 中打开以下 URL:chrome-devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:9229/e771f282-5e94-4247-ac1c-89d7dc035129 如果一切顺利,您将看到一些开发人员工具,可以从中开始调试。

2021-09-20 01:10:13    分类:技术分享    node.js   debugging   karma-runner   karma-jasmine   node-inspector

未找到须藤。 尝试 npm 安装(Sudo not found. Trying npm install)

问题 我使用的是 Windows 8.1 笔记本电脑。 我一直找不到sudo。 使用以下命令尝试 npm install: F:\Webruin2>sudo npm install -g git 'sudo' is not recognized as an internal or external command, operable program or batch file. F:\Webruin2>npm install -g git git@0.1.5 C:\Users\Dave\AppData\Roaming\npm\node_modules\git └── mime@1.2.9 F:\Webruin2>git -v 'git' is not recognized as an internal or external command, operable program or batch file. F:\Webruin2>npm install -s sudo sudo@1.0.3 node_modules\sudo ├── inpath@1.0.2 ├── pidof@1.0.2 └── read@1.0.5 (mute-stream@0.0.4) F:\Webruin2>sudo npm install -g git 'sudo' is not recognized

2021-09-20 01:04:04    分类:技术分享    windows   node.js   sudo