小编Eug*_*kov的帖子

在Node.js中读取文件

我对在Node.js中读取文件感到很困惑.

fs.open('./start.html', 'r', function(err, fileToRead){
    if (!err){
        fs.readFile(fileToRead, {encoding: 'utf-8'}, function(err,data){
            if (!err){
            console.log('received data: ' + data);
            response.writeHead(200, {'Content-Type': 'text/html'});
            response.write(data);
            response.end();
            }else{
                console.log(err);
            }
        });
    }else{
        console.log(err);
    }
});
Run Code Online (Sandbox Code Playgroud)

文件start.html与尝试打开并读取它的文件位于同一目录中.

但是,在控制台中,我得到:

{[错误:ENOENT,打开'./start.html']错误:34,代码:'ENOENT',路径:'./ start.html'}

有任何想法吗?

node.js

154
推荐指数
6
解决办法
19万
查看次数

无法从bitbucket repo安装npm

我正在尝试安装最近从github移动到bitbucket的私有包.

npm install git@bitbucket.org:owner/repo.git
Run Code Online (Sandbox Code Playgroud)

结束了

npm http GET https://registry.npmjs.org/git
Run Code Online (Sandbox Code Playgroud)

(注意网址中的包)有这个错误:

错误的ERR!notarget未找到兼容的版本:git@'bitbucket.org:flyvictor/fortune-secruity.git'

(注意'事后@)

我试图逃避@,用引号包装repo名称,但总是得到相同的结果.

对于github,我们使用格式化的网址git://github.com/owner/repo#v.v.v,这样可以正常工作!但是如果我对bitbucket npm使用相同的语法就会挂起什么都不做.

任何的想法?

ps键,访问权限,所以一个是正确的.我可以为这些repos做贡献,用git克隆它们,但不能用npm install克隆它们.安装得好的Github软件包也是私有的.

bitbucket node.js npm

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

在transcluded范围内的ng-if会破坏范围继承

这个小提琴说明了问题http://jsfiddle.net/LAqeX/2/

我想创建一个包含页面一部分并隐藏它的指令.我想使用ng-if删除不必要的绑定.但是一些黑魔法发生了.

这是我最喜欢的指令代码.

app.directive('withIf', function(){
    return {
        restrict: 'E',
        scope: {
            title: '@'
        },
        transclude: true,
        template: '<div>' +
        '<p ng-click="visible = !visible">{{title}}</p>' +
        '<div ng-if="visible" ng-transclude></div>'+
        '</div>',
        link: function(scope){
            scope.visible = false;
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

它应该创建两个范围:

  1. 指令隔离范围有两个变量 - 标题和可见
  2. Transcluded范围,原型继承自"常规"范围树.

然而,ng-if使得被转移的范围有点脱离现实,并且trasncluded范围不会从控制器继承.请看小提琴,它说明问题非常明确.

任何想法在那里发生了什么以及如何解决它?

UPDATE

我似乎已经找到了范围链看起来破碎的原因.由ng-if创建的范围属于withIf指令isolate分支.所以它永远不知道控制器的范围是否存在.但问题仍然是相同的 - 如何在这种情况下使用ng-if.

angularjs transclusion angularjs-scope angular-ng-if

7
推荐指数
1
解决办法
4080
查看次数

UI的路由器.从对象/函数获取状态名称

我想知道,有没有办法用对象或函数来引用状态?

只是为了从状态定义中分离视图.例如,如果我更改州名,我不必在我的视图中随处更改它.

angularjs angular-ui-router

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

Mongoose,更新子文档

请考虑以下架构

Var Schema = new Schema({
  username: {Type: String},
  ...
  ...
  contacts: {
    email: {Type: String},
    skype: {Type: String}
    }
  })
Run Code Online (Sandbox Code Playgroud)

由于每个用户只能说一个电子邮件和Skype,我不想使用带有联系人的数组.

丢弃数据库查询和错误处理我尝试做类似的事情

// var user is the user document found by id
var newValue = 'new@new.new';
user['username'] = newValue;
user['contacts.$.email'] = newValue;
console.log(user['username']); // logs new@new.new    
console.log(user['contacts.$.email']); // logs new@new.new
user.save(...);
Run Code Online (Sandbox Code Playgroud)

没有错误发生,用户名成功更新,而联系人子文档仍为空.我在那里想念什么?

mongoose mongodb node.js

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

offsetHeight/clientHeight/scrollHeight永远不会改变

我正在使用Angular构建一个滚动指令,并看到元素高度的奇怪行为.它们在调整大小时不会改变.我去了最简单的普通JS,但这个bug还在这里.这个小提琴说明了它http://jsfiddle.net/Y8B86/1/.尝试调整窗口大小并多次单击内容并查看控制台.

function rebuild() {
    var transcluded = document.getElementsByTagName('div')[0];
    scope.scrollHeight = transcluded.scrollHeight;
    scope.offsetHeight = transcluded.offsetHeight;
    scope.clientHeight = transcluded.clientHeight;
}
Run Code Online (Sandbox Code Playgroud)

该函数负责读取值.Angular的唯一区别在于,而不是document.getElementsByTagName我做element.children()[n]内部元素.此外,当窗口足够小时,元素不响应滚动.ScrollTop不会改变.

问题是窗口报告调整大小为什么height没有更新?

html javascript

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

访问文件查找路径中的循环变量

我正在尝试动态读取模板中 for 循环内的文件内容。但一旦我尝试host在文件路径内使用变量,它就会失败。

一些背景:

  • 中有三个条目groups.docker_hosts
  • 它尝试读取的所有文件都存在并且可读。
  • 每个文件都有file content xx主机xx索引的内容

例如这个例子就可以正常工作:

    template.j2
    {% for host in groups.docker_hosts %}
        "{{lookup('file', '{{inventory_dir}}/pki/dev-docker01/test')}}"
    {% endfor %}

    result
    "file content 01"
    "file content 01"
    "file content 01"
Run Code Online (Sandbox Code Playgroud)

这也可以正确渲染每个主机

template.j2
{% for host in groups.docker_hosts %}
"{{host}}"
{% endfor %}

result:
"dev-docker01"
"dev-docker02"
"dev-docker03"
Run Code Online (Sandbox Code Playgroud)

但是一旦我尝试使用host内部文件路径,我就会收到此错误"msg": "AnsibleUndefinedVariable: 'host' is undefined"

{% for host in groups.mongo_hosts %}
"{{lookup('file', '{{inventory_dir}}/pki/{{host}}/test')}}"
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

似乎它正在新的隔离上下文中运行,该上下文只能访问全局变量。知道如何真正让它host正确地看到变量吗?

jinja2 ansible

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

权限被拒绝读取用户拥有的文件

我正在尝试在Ubuntu 14.04上重启(它正在运行)MongoDB,但是在日志中继续使用此行失败error getting file /srv/mongodb/keyfile: Permission denied

这是目录结构

drwxr-xr-x  3 root    root     4096 Jan 31 05:54 srv/
drw-------  2 mongodb mongodb  4096 Jan 31 07:07 mongodb/
-rw-------  1 mongodb mongodb  876  Jan 31 07:07 keyfile
Run Code Online (Sandbox Code Playgroud)

运行的用户mongod是"mongodb",组"mongodb"因此它应该可供阅读.

如果我改变的权限mongodb/,并keyfile-rw-r--r--成为可读,但蒙戈声称它太宽容,当然

用这个东西去煮饭了.有什么建议在这里有什么问题吗?

linux ubuntu mongodb

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