相关疑难解决方法(0)

Node.js项目的文件夹结构

我注意到Node.js项目通常包含这样的文件夹:

/ libs,/ vendor,/ support,/ spec,/ tests

这究竟是什么意思?它们之间有什么不同,我应该在哪里包含引用的代码?

node.js

332
推荐指数
4
解决办法
20万
查看次数

为什么Node.js是单线程的?

在基于PHP(或Java/ASP.NET/Ruby)的Web服务器中,每个客户端请求都在新线程上实例化.但是在Node.js中,所有客户端都运行在同一个线程上(它们甚至可以共享相同的变量!)我知道I/O操作是基于事件的,所以它们不会阻塞主线程循环.

我不明白的是为什么Node的作者选择它是单线程的?这让事情变得困难.例如,我无法运行CPU密集型功能,因为它阻塞了主线程(并阻止了新的客户端请求),因此我需要生成一个进程(这意味着我需要创建一个单独的JavaScript文件并在其上执行另一个节点进程) ).但是在PHP中,cpu密集型任务不会阻止其他客户端,因为我提到每个客户端都在不同的线程上.与多线程Web服务器相比,它有哪些优势?

注意:我已经使用群集来解决这个问题,但它并不漂亮.

node.js

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

Mongoose - 验证电子邮件语法

我有一个用户的mongoose模式(UserSchema),我想验证电子邮件是否具有正确的语法.我目前使用的验证如下:

UserSchema.path('email').validate(function (email) {
  return email.length
}, 'The e-mail field cannot be empty.')
Run Code Online (Sandbox Code Playgroud)

但是,这仅检查字段是否为空,而不是语法.

是否已经存在我可以重复使用的东西,或者我必须提出自己的方法并在validate函数中调用它?

mongoose mongodb node.js

36
推荐指数
6
解决办法
4万
查看次数

带有socket.io的React-Redux和Websockets

我是React-Redux技术的新手,我希望你能帮助我实现一些功能.

我想用套接字(socket.io)实现一个聊天应用程序.首先,用户必须注册(我在服务器端使用护照),之后,如果注册成功,则用户必须连接到webSocket.

我认为最好的方法是使用像管道这样的中间件来执行所有操作,并根据什么样的操作获取中间件,做不同的事情.

如果操作类型是AUTH_USER,则创建客户端 - 服务器连接并设置将来自服务器的所有事件.

如果操作类型是MESSAGE向服务器发送消息.

代码片段:

----- socketMiddleware.js ----

import { AUTH_USER,  MESSAGE } from '../actions/types';

import * as actions from 'actions/socket-actions';

import io from 'socket.io-client';

const socket = null;

export default function ({ dispatch }) {

    return next => action => {

        if(action.type == AUTH_USER) {

            socket = io.connect(`${location.host}`);

            socket.on('message', data => {

               store.dispatch(actions.addResponse(action.data));

            });

        }

        else if(action.type == MESSAGE && socket) {

            socket.emit('user-message', action.data);

            return next(action)

        } else {
            return next(action)
        } …
Run Code Online (Sandbox Code Playgroud)

middleware socket.io reactjs redux

21
推荐指数
2
解决办法
9958
查看次数

使用mongoose和express处理数据验证的最佳位置

也许这里没有确定的答案,但我想知道在处理express.js和mongoose时在哪里处理数据验证.以下哪项是最佳实践(我目前使用的是组合,并且开始感觉非常笨拙):

  1. 模特(猫鼬)
  2. 控制器/路线(快递)

我读过的一些旧帖子是:

但是相互矛盾的答案只会增加混乱.也许它根本就不清楚,在哪种情况下是一个更好的选择?

mongoose node.js express

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

标签 统计

node.js ×4

mongoose ×2

express ×1

middleware ×1

mongodb ×1

reactjs ×1

redux ×1

socket.io ×1