小编Sam*_*Sam的帖子

创建模型时出现Mongoose错误(使用Step)

当尝试在Mongoose中创建模型时,我收到以下错误

[TypeError:无法读取未定义的属性'选项']

我不知道是什么导致了它

"use strict";
var Step = require('step');
var mongoose = require('mongoose');
var Schema = mongoose.Schema;

function randomFunction() {
    var categorySchema = new Schema({
        id: Number,
        name: String,
        description: String
    }, { collection: 'categories' });

    var Category;

    //...

    mongoose.connect('mongodb://localhost/grouping');

    new Step(
        function() { //Connect to mongodb
            var db = mongoose.connection;
            db.on('error', console.error.bind(console, 'connection error:'));
            db.on('open', this);
        },
        function() {  //Create model
            console.log(categorySchema); //Logs the schema object right
            Category = mongoose.Model('Category', categorySchema);


        },
        function(err) {
            console.log(err);  //Error here
        });
    //... …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js

21
推荐指数
1
解决办法
1万
查看次数

在Windows上安装Bower on Vagrant需要什么权限?

在Vagrant上运行精确32 Ubuntu Box的Windows 7计算机上通过NPM安装Bower时,我一直遇到此错误.我尝试了每个命令组合,总是得到相同或非常相似的错误

使用sudo在本地,全局安装,不使用sudo等.

...
npm ERR! Error: EPERM, open '/home/vagrant/tmp/npm-1214-AHbOCwuM/1391873680685-0.36021817452274263/package/build/node_modules/cheerio/node_modules/htmlparser2/node_modules/readable-stream/test/simple/test-stream2-readable-empty-buffer-no-eof.js'
npm ERR!  { [Error: EPERM, open '/home/vagrant/tmp/npm-1214-AHbOCwuM/1391873680685-0.36021817452274263/package/build/node_modules/cheerio/node_modules/htmlparser2/node_modules/readable-stream/test/simple/test-stream2-readable-empty-buffer-no-eof.js']
npm ERR!   errno: 50,
npm ERR!   code: 'EPERM',
npm ERR!   path: '/home/vagrant/tmp/npm-1214-AHbOCwuM/1391873680685-0.36021817452274263/package/build/node_modules/cheerio/node_modules/htmlparser2/node_modules/readable-stream/test/simple/test-stream2-readable-empty-buffer-no-eof.js' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! System Linux 3.2.0-23-generic-pae
npm ERR! command "/usr/bin/node" "/usr/bin/npm" "install" "-g" "bower" "--no-bin-links"
npm ERR! cwd /home/vagrant
npm ERR! node -v v0.10.25
npm ERR! npm -v 1.3.24
npm ERR! path /home/vagrant/tmp/npm-1214-AHbOCwuM/1391873680685-0.36021817452274263/package/build/node_modules/cheerio/node_modules/htmlparser2/node_modules/readable-stream/test/simple/test-stream2-readable-empty-buffer-no-eof.js
npm ERR! code EPERM …
Run Code Online (Sandbox Code Playgroud)

windows node.js npm vagrant bower

12
推荐指数
1
解决办法
8573
查看次数

使用app.get(..)路由后,Express JS'this'未定义

我有一个基本的Node JS服务器,它被设计用作API,我创建了一个日志和数据库模块,我已经开始添加其他模块来处理不同的请求类型.

我正在使用Express.js和node-mysql

当我访问时,/v1/group我收到以下错误 -

TypeError: Cannot read property 'database' of undefined
    at Group.getAll (C:\code\javascript\node\api\api\v1\groups.js:12:23)
    at callbacks (C:\code\javascript\node\api\node_modules\express\lib\router\index.js:161:37) ...
Run Code Online (Sandbox Code Playgroud)

所以我recieving的请求,并调用后猜测group.getAll()this是不确定的,但我不明白为什么,有没有一种方法来设置this或已结构我我的应用程序都错了吗?

sever.js

"use strict";

var Express = require('express');
var Log = require('./database/log');
var Database = require('./database/database');
var dbConfig = require('./dbconfig.json');

var Group = require('./api/v1/groups');


//Init express
var app = new Express();

//Init log and database
var log = new Log();
var database = new Database(dbConfig, log);

var initCallback = function() {
    //Init routes …
Run Code Online (Sandbox Code Playgroud)

javascript node.js express node-mysql

10
推荐指数
1
解决办法
3288
查看次数

由于缺少依赖项,带有 babel 的 Yarn 2 monorepo 无法构建,但它正在查看错误的 package.json

我有一个 monorepo,使用yarn 2.4、webpack 和 babel 以及一个顶层babel.config.json,具有以下文件夹结构(稍微简化)

|-- .yarn
|-- package.json (top-level)
|-- babel.config.json
|-- tsconfig.json
|-- /* other config files... /
|-- modules
|   |-- build
|   |   |-- build-system
|   |   |   |-- package.json (module-level)
|   |   |   |-- entry.js
|   |   |   |-- webpack.js
|   |   |   |-- /* source... */
|   |-- /* other module folders... */
Run Code Online (Sandbox Code Playgroud)

我已将 ts/js 文件的 webpack 规则更改为以下内容:

{
  test: /\.(j|t)sx?$/,
  use: { 
    loader: "babel-loader",
    options: {
      babelrcRoots: ['../..'],
      rootMode: 'upward', …
Run Code Online (Sandbox Code Playgroud)

webpack babeljs yarn-workspaces

7
推荐指数
0
解决办法
1654
查看次数

控制多机Vagrant块执行顺序

我有一个多机器流浪汉设置与一些块,我需要更改执行顺序.

由于流浪汉顺序在外面 - 最嵌套的块执行最后.

我需要一种方法来使配置块更嵌套,以便它们最后执行.我尝试添加mach.vm.define但这些块不执行,我不明白为什么.

正常执行,错误的顺序

Vagrant.require_version ">= 1.6.0"
VAGRANTFILE_API_VERSION = "2"

require 'yaml'

machines = YAML.load_file('vagrant.yaml')

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  machines.each do |machine|

    config.vm.define machine["name"] do |mach|

      machine['run_this'].each do |run_this|
        mach.vm.provider "virtualbox" do |v, override|
          # should run first
        end
      end

      # Do a puppet provision to install the rest of the software
      mach.vm.provision "puppet" do |puppet|
        # puppet stuff
      end

      mach.vm.box = 'ubuntu/trusty64'

  end
end
Run Code Online (Sandbox Code Playgroud)

理想的解决方案,但额外的嵌套块不会执行

Vagrant.require_version ">= 1.6.0"
VAGRANTFILE_API_VERSION = "2"

require 'yaml'

machines = YAML.load_file('vagrant.yaml')

Vagrant.configure(VAGRANTFILE_API_VERSION) do …
Run Code Online (Sandbox Code Playgroud)

ruby provisioning vagrant

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

减少 webpack-dev-server 上的日志输出

我有一个 Webpack 4 项目,当使用 webpack-dev-server 时,构建完成后我收到了大量日志记录,但我确实不需要。

\n\n
i \xef\xbd\xa2wdm\xef\xbd\xa3: Compiling...\n\xe2\x80\xbc \xef\xbd\xa2wdm\xef\xbd\xa3: Built at: 2018-4-15 09:15:18\nEntrypoint main = styles.css bundle.js\n[./node_modules/ansi-html/index.js] 4.16 KiB {main}\n[./node_modules/loglevel/lib/loglevel.js] 7.68 KiB {main}\n[./node_modules/react-dom/index.js] 1.33 KiB {main}\n[./node_modules/react/index.js] 190 bytes {main}\n[./node_modules/url/url.js] 22.8 KiB {main}\n[./node_modules/webpack-dev-server/client/index.js?http://localhost:8080] (webpack)-dev-server/client?http://localhost:8080 7.75 KiB {main}\n[./node_modules/webpack-dev-server/client/overlay.js] (webpack)-dev-server/client/overlay.js\n3.58 KiB {main}\n[./node_modules/webpack-dev-server/client/socket.js] (webpack)-dev-server/client/socket.js 1.05 KiB {main}\n[./node_modules/webpack-dev-server/node_modules/strip-ansi/index.js] (webpack)-dev-server/node_modules/strip-ansi/index.js 161 bytes {main}\n[./node_modules/webpack/hot sync ^\\.\\/log$] (webpack)/hot sync nonrecursive ^\\.\\/log$ 170 bytes {main}\n[./node_modules/webpack/hot/emitter.js] (webpack)/hot/emitter.js 77 bytes {main}\n[./source/scripts/components/app.js] 2.11 KiB {main} [1 warning]\n[./source/scripts/index.js] 454 bytes {main}\n[./source/styles/main.scss] 39 bytes {main} [built]\n   [0] multi (webpack)-dev-server/client?http://localhost:8080 ./source/scripts/index.js 40 bytes …
Run Code Online (Sandbox Code Playgroud)

webpack webpack-dev-server

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

将CodeIgniter与普通的PHP会话一起使用,在哪里添加session_start();

我在使用CodeIgniters实现在重定向后被删除的会话时遇到了一些麻烦所以我正在恢复正常的PHP会话.

session_start();假设我希望在每个页面调用它而不将其添加到每个控制器构造函数中,那么最佳位置在哪里?

我猜它把它放在主要的index.php的顶部会工作正常,只是想确保这样做不会破坏任何东西或者是否有更好的/标准的地方放置它?

php codeigniter

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

Angular JS,Protractor定位器,获得元素的直接子元素

我有一个网格,我想从中选择所有行,而不是行中的所有元素

行只是div,没有类等等,像这样(为简洁起见删除内部内容)

<div class="grid">
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
</div>
Run Code Online (Sandbox Code Playgroud)

通常使用量角器定位器,你可以去 element(by.css(".grid > div"))

我的问题是网格已经是量角器元素,我无法控制它,但我仍然只想选择它的直接子节点.

var gridElement = element(by.css(".grid"));
Run Code Online (Sandbox Code Playgroud)

所以我需要类似的东西

var rows = gridElement.all(by.css("> div"));
Run Code Online (Sandbox Code Playgroud)

但这不是一个有效的CSS选择器,因为它缺少左侧.有谁知道我怎么能做到这一点?

编辑:使用量角器1.0,不幸的是,更新版本是最后的手段

javascript angularjs protractor

3
推荐指数
1
解决办法
1827
查看次数

Java流程可以从不同的位置执行吗?

我想要从不同的位置创建一个进程到我的应用程序jar所在的位置,但我不确定它是否可能,或者是否可行,如何进行.

例如,这是我正在研究的一个Minecraft包装器

Runtime rt = Runtime.getRuntime();

String proc = "java -Xms512M -Xmx1024M -jar minecraft_server.jar nogui";

Process pr = rt.exec(proc);
Run Code Online (Sandbox Code Playgroud)

这将从当前位置执行minecraft jar(这使得minecraft地图和服务器配置文件出现在当前文件夹中,这不是我想要的).


我可以通过将命令'cd'放入bat文件或bash脚本来实现它,它看起来像:

cd minecraft/
java -Xms512M -Xmx1024M -jar ../minecraft_server.jar nogui
Run Code Online (Sandbox Code Playgroud)

然后我的代码就会变成

Runtime rt = Runtime.getRuntime();

String proc = "mc.bat";

Process pr = rt.exec(proc);
Run Code Online (Sandbox Code Playgroud)

这将从我想要的子目录'minecraft /'执行minecraft.jar.但是,如果可能的话,我非常希望在Java应用程序中执行此操作,而无需使用批处理文件/ bash脚本.

java runtime

2
推荐指数
1
解决办法
2267
查看次数

MySQL使用LIKE匹配部分字符串

我正在尝试创建一个MySQL查询,当提供邮政编码时,它将返回一行(或更多,但我只对单行感兴趣)区域建议.

所以,我有一张这样的桌子

area_id | postcode_start
1       | NE
2       | DL
3       | DL1
4       | DL2
5       | DL6
...
Run Code Online (Sandbox Code Playgroud)

我希望提供一个邮政编码,例如DL5 8TB,并1 | DL在第一个字符匹配时返回该行.

另一个例子DL6 4GH将返回两行,5 | DL62 | DL

SELECT *
    FROM (`area_postcodes`)
    WHERE CONCAT(LOWER(`area_postcodes`.`postcode_start`),'%')
        LIKE 'dl5 8tb';
Run Code Online (Sandbox Code Playgroud)

显然它是一个有效的查询,但它总是返回一个空集.

你会看到我已经将通配符添加%到了查询的另一端,但它似乎不起作用,我不知道在哪里甚至考虑猜测如何去做,它几乎就像是反向的正常MySQL LIKE查询.

mysql sql sql-like

2
推荐指数
1
解决办法
2862
查看次数