小编Lui*_*gan的帖子

使用mongoose添加不在模式中的字段

我正在尝试向文档添加新字段,但这不起作用:

创建我的UserModel原型:

model = require("../models/user")
UserModel.prototype.findOneAndUpdate = function(query, params, cb) {
   model.findOneAndUpdate(query, params, { returnNewDocument: true, new: true }, function(err, data) {
      if (!err) {
         cb(false, data);
      } else {
         cb(err, false);
      }
   });
};
Run Code Online (Sandbox Code Playgroud)

然后调用它

userFunc = require("../../model_functions/user")

userFunc.findOneAndUpdate({
                  "email.value": userEmail
            }, {
                  $set: {"wat":"tf"}
            },
            function (err, updatedUser) {
                  //This logs the updated user just fine, but the new field 
                  is missing
                  console.log(updatedUser);

                  ...
            }
      );
Run Code Online (Sandbox Code Playgroud)

这会成功更新任何字段,只要它存在,但不会添加任何新字段.

javascript mongoose mongodb node.js

10
推荐指数
2
解决办法
6641
查看次数

将 nodejs 应用部署到 bluehost

我在 bluehost 中有一个 VPS,我通过 SSH 安装了 node 和 npm,并且我设法在 www.mywebsite.com:3000 中运行了一个 node 应用程序,所以我有两个问题:

1) 我如何运行 app.js 以便在它“收听” www.mywebsite.com 时?我的意思是,当我访问 www.mywebsite.com 时,我会在我的本地主机中看到我的 index.ejs 和所有内容,而不是访问 www.mywebsite.com:3000。

2) 当我设法在 www.mywebsite.com:3000 中运行节点应用程序时,如果我停止 SSH 连接,它将关闭,它不会保持“永远”状态,我如何启动服务器一次并保持它?与 Heroku 一样,可以使用脚本“node app.js”上传 package.json 并且服务器将始终启动并运行。

我如何在端口 3000 中运行节点应用程序:

首先我跑了npm init,然后我安装了 expressnpm install --save express

应用程序.js:

var express = require("express");
var app = express();

app.get("/", function(req,res){
     res.send("hi");
});

app.listen(3000, functions(){
     console.log("Server Started");
});
Run Code Online (Sandbox Code Playgroud)

javascript ssh shared-hosting vps node.js

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

如何测试包裹在另一个连接组件中的连接组件?

我想测试我的纯组件,所以我这样做:

MyComp.js

export MyComp = props => {
  return (
    <Wrapper>Content</Wrapper>
  )
}

const MyCompConn = connect()(MyComp);
export default MyCompConn;
Run Code Online (Sandbox Code Playgroud)

在哪里<Wrapper>

export Wrapper = ({children}) => {
  return (
    <div>{children}</div>
  )
}

const WrapperConn = connect()(Wrapper);
export default WrapperConn;
Run Code Online (Sandbox Code Playgroud)

MyComp.test.js

import React from 'react';
import renderer from 'react-test-renderer';

import { MyComp } from '../../MyComp';


describe('With Snapshot Testing', () => {
  it('renders!"', () => {
    const component = renderer.create(<Login />);
    const tree = component.toJSON();
    expect(tree).toMatchSnapshot();
  });
});
Run Code Online (Sandbox Code Playgroud)

现在,当我运行时yarn …

javascript unit-testing reactjs jestjs redux

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

TypeError: Cannot read property '_locals' of undefined

I am trying to use nodejs in ubuntu 16.04 and I installed node and npm but I'm having this error "TypeError: Cannot read property '_locals' of undefined" when I try this:

var express = require("express");
    app = express();
    bodyParser = require("body-parser");
    mongoose = require("mongoose");

app.set("view engine", "ejs");

app.get("/", function(req,res){
    app.render("index");
});

app.listen(3000, function(){
    console.log("Server Started!");
})
Run Code Online (Sandbox Code Playgroud)

it outputs in the terminal:

Server Started!
TypeError: Cannot read property '_locals' of undefined
    at EventEmitter.render (/home/luis/Documents/work/webdevBootcamp/test/node_modules/express/lib/application.js:548:11)
    at /home/luis/Documents/work/webdevBootcamp/test/app.js:9:6
    at Layer.handle [as handle_request] (/home/luis/Documents/work/webdevBootcamp/test/node_modules/express/lib/router/layer.js:95:5) …
Run Code Online (Sandbox Code Playgroud)

javascript node.js express ubuntu-16.04

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

导出没有装饰器的纯功能组件

我正在尝试导出没有装饰器的组件(在这种情况下为connect()),以使用进行单元测试jest

因此,我该怎么做:

import React, { Component } from 'react';
import { connect } from 'react-redux';

export class Header extends Component {
    render(){
        return <pre>Header</pre>
    }
}

export default connect()(Header);
Run Code Online (Sandbox Code Playgroud)

使用此组件(开始时无法导出,仍然会导出连接的组件)

export let Header = props => {
    render(){
        return <pre>Header</pre>
    }
}

Header = connect()(Header);

export default Header;
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing reactjs jestjs redux

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

导入 LOCAL .obj 以使用 React 加载 Three.js OBJLoader

我正在尝试导入要加载THREE.OBJLoader().load()函数的本地 .obj ,我知道它可以工作,因为当我传递非本地 URL(例如“ http://downloadOBJfromHere.com ”)时,它会完美加载它,这是我的主要问题就是这样,每次我加载它时,它都必须下载 obj 并且需要很长时间。

我正在使用 React 进行服务器端渲染。

import * as THREE from 'three';
import * as OBJLoader from 'three-obj-loader';
import obj from '../../../assets/obj/scene.obj';
Run Code Online (Sandbox Code Playgroud)

ComponentDidMount()

const loader = new THREE.OBJLoader();
        loader.load( obj,
            object => {
                scene.add(object);
            },
            xhr => {
                console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
            },
            error => {
                console.log("Error! ", error);
            }
        );
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我在 Chrome 控制台中收到错误消息:

Unexpected line: '<!doctype html><html lang="en" data-reactroot="" data-reactid="1" data-react-checksum="1415239080"><head data-reactid="2"><meta …
Run Code Online (Sandbox Code Playgroud)

javascript three.js reactjs webpack objloader

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