小编Keo*_*Kim的帖子

为什么Javascript比较不能与对象一起使用?

我这里有简单的代码.

其目的是用编写帖子的用户验证用户并允许经过验证的用户编辑帖子.

exports.edit = function(req, res){
    Post.findById(req.params.post_id, function(err, post){
        if(err){
            return res.json({
                type:false,
                message:"error!"
            });
        }else if(!post){
            return res.json({
                type:false,
                message:"no post with the id"
            })
        }else{
            console.log(req.user._id, typeof req.user._id);
            console.log(post.author.user_id, typeof post.author.user_id);
            if(req.user._id === post.author.user_id){ // doesn't work!!
                return res.json({
                    type:false,
                    message:"notAuthorized"
                }); 
            }else{
                return res.json({
                    type:true,
                    message:"it works",
                    data:post
                }); 
            }
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

控制台说:

557c6922925a81930d2ce 'object'
557c6922925a81930d2ce 'object'
Run Code Online (Sandbox Code Playgroud)

这意味着它们在价值上是相等的,在类型上也是相同的.

我也尝试==过,但这也行不通.

我怀疑是否需要做一些事情来比较对象,但我不知道我应该做什么.

javascript node.js

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

UNMET PEER DEPENDENCY babel-core@5.8.38

我试图安装babel和babel预设.但我似乎遇到了一个阻止我安装的严重错误.

我输入以下命令:

npm install --save-dev babel-core babel-loader babel-preset-es2015 babel-preset-stage-0 babel-preset-react
Run Code Online (Sandbox Code Playgroud)

但它拒绝我以下错误消息:

    ??? UNMET PEER DEPENDENCY babel-core@5.8.38
  ??? regenerator@0.8.40
    ??? defs@1.1.1
    ? ??? esprima-fb@15001.1001.0-dev-harmony-fb 
    ??? esprima-fb@15001.1001.0-dev-harmony-fb 
    ??? recast@0.10.33
      ??? esprima-fb@15001.1001.0-dev-harmony-fb 

npm WARN optional Skipping failed optional dependency /babel/chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.0.9
npm WARN optional Skipping failed optional dependency /chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.0.9
npm WARN babel-loader@6.2.4 requires a peer of babel-core@^6.0.0 but none was …
Run Code Online (Sandbox Code Playgroud)

npm babeljs npm-install

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

arduino 突然显示“avrdude: ser_open(): can't open device "\\.\COM3" after last upload

我正在使用 arduino uno 制作声音检测器。我上传了一个程序,在代码中发现错误,它返回了不合理的大数字。我还认为我为模块使用了错误的代码,但它以可以与正确代码正常工作的方式连接。

我上传的代码是:

const int ledPin =13;
const int middleValue = 512;
const int numberOfSamples =128;

int sample;
long signal;
long averageReading;

long runningAverage = 0;
const int averagedOver = 16;

const int threshold=400;

void setup(){
    pinMode(ledPin, OUTPUT)
    Serial.begin(9600)
}

void loop(){
    long sumOfSquares = 0;
    for (int i=0; i<numberOfSamples; i++){
        sample = analogRead(0);
        signal = (sample - middleValue);
        signal *= signal;
        sumOfSquares += signal;
    }
    averageReading = sumOfSquares/numberOfSamples;
    runningAverage=(((averagedOver -1 )*runningAverage)+averageReading)/averagedOver;

    if(runningAverage>threshold){
        digitalWrite(ledPin, HIGH);
    }else{
        digitalWrite(ledPin, LOW); …
Run Code Online (Sandbox Code Playgroud)

arduino arduino-ide arduino-uno

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

如何使用MongoDB(Mongoose)在集合中添加/更新ObjectId数组?

这就是我想要的最终结果。我不知道如何更新索引数组。

在此处输入图片说明

我的模式是使用猫鼬构建的

var postSchema  = new Schema({
    title: {type:String},
    content: {type:String},
    user:{type:Schema.ObjectId},
    commentId:[{type:Schema.ObjectId, ref:'Comment'}],
    created:{type:Date, default:Date.now}
});


var commentSchema  = new Schema({
    content: {type:String},
    user: {type:Schema.ObjectId},
    post: {type:Schema.ObjectId, ref:'Post'}
    created:{type:Date, default:Date.now}
});
Run Code Online (Sandbox Code Playgroud)

我的控制器是:

// api/posts/
exports.postPosts = function(req,res){
    var post = new Post({
        title: req.body.title,
        content: req.body.content,
        user: req.user._id
    });
    post.save(function(err){
        if(err){res.send(err);}
        res.json({status:'done'});
    });
};


// api/posts/:postId/comments
exports.postComment = function(req,res){
    var comment = new Comment({
        content: req.body.content,
        post: req.params.postId,
        user: req.user._id
    });
    comment.save(function(err){
        if(err){res.send(err);}
        res.json({status:'done'});
    });
};
Run Code Online (Sandbox Code Playgroud)

我需要使用中间件吗?还是我需要在控制器中做点什么?

mongoose mongodb node.js express

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

在纯 JavaScript 中切换显示

如果单击登录和注册按钮,我正在尝试切换注册和登录框的可见性。我试图只使用纯 JavaScript。

我写了简单的 html 和 javascript 如下:

<div>
    <button class="signin">sign in</button><button class="signup">sign up</button>

    <div class="signin-box" style="display: none;">
        <form class="signin-form">
            <label>username<input></label><label>password<input></label><button type="submit">signin</button>
        </form>
    </div>

    <div class="signup-box" style="display: none;">
        <form class="signup-form">
            <label>username<input></label><label>password<input></label><button type="submit">signup</button>
        </form>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

JavaScript部分:

var signupButton = document.getElementsByClassName('signup')[0];
var signinButton = document.getElementsByClassName('signin')[0];
var signupBox = document.getElementsByClassName('signup-box')[0];
var signipBox = document.getElementsByClassName('signin-box')[0];

console.log("box: ", signupBox, "button: ",signupButton);

var toggleVisible = function(item){
    if (item.style.display === 'none'){
        return item.style.display = 'block';
    }else{
        return item.style.display = 'none';
    }
};

window.onload = function(){
    signupButton.onclick = …
Run Code Online (Sandbox Code Playgroud)

javascript

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

如何打破超类构造链?

class Animal {
    protected Animal(){
        System.out.println("ANIMAL CONSTRUCTOR");
    }
    public void move(){
        System.out.println("ANIMAL Move");
    }
}

class Dog extends Animal{
    public Dog(){
        System.out.println("Dog Constructor");
    }
    public void move(){
        System.out.println("Dog move");
    }

}


public class Test {
    public static void main(String args[]){
    Dog d = new Dog();
    d.move();
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的代码产生以下结果:

ANIMAL CONSTRUCTOR 
Dog Constructor
Dog move
Run Code Online (Sandbox Code Playgroud)

似乎在创建dog实例时,它默认情况下也会调用Animal构造函数(隐式).

这很奇怪,因为我在考虑明确地打电话super()可以做同样的工作.

有没有办法打破这个构造函数链,让我的狗实例只调用Dog构造函数?

如果没有,是否有理由呢?

java inheritance class

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

TypeError: key &lt;built-in function id&gt; is not a string

我正在使用flask 及其flask-restful 扩展来制作一个简单的restful-api。我无法使用用户 ID(参考)将数据填充到问题表中。

model.py 文件如下:

class User(UserMixin, SurrogatePK, Model):

    __tablename__ = 'users'
    username = Column(db.String(80), unique=True, nullable=False)
    email = Column(db.String(80), unique=True, nullable=False)
    #: The hashed password
    password = Column(db.String(128), nullable=True)
    created_at = Column(db.DateTime, nullable=False, default=dt.datetime.utcnow)

    def __init__(self, username, email, password=None, **kwargs):
        db.Model.__init__(self, username=username, email=email, **kwargs)
        if password:
            self.set_password(password)
        else:
            self.password = None

    def set_password(self, password):
        self.password = bcrypt.generate_password_hash(password)

    def check_password(self, value):
        return bcrypt.check_password_hash(self.password, value)

    def generate_auth_token(self, expiration = 600):
        s = Serializer('secret_key', expires_in = expiration)
        return s.dumps({ 'id': self.id …
Run Code Online (Sandbox Code Playgroud)

python flask flask-sqlalchemy flask-restful

0
推荐指数
1
解决办法
7212
查看次数