我找到了一些代码,他们在没有使用的情况下设置Express app.configure,我想知道,使用之间的区别是什么app.configure没有环境说明符而不使用它什么?
换句话说,这有什么区别:
var app = require(express);
app.configure(function(){
app.set('port', process.env.PORT || config.port);
app.use(express.logger('dev')); /* 'default', 'short', 'tiny', 'dev' */
app.use(express.bodyParser());
app.use(express.static(path.join(__dirname, 'site')));
}
Run Code Online (Sandbox Code Playgroud)
还有这个:
var app = require(express);
app.set('port', process.env.PORT || config.port);
app.use(express.logger('dev')); /* 'default', 'short', 'tiny', 'dev' */
app.use(express.bodyParser());
app.use(express.static(path.join(__dirname, 'site')));
Run Code Online (Sandbox Code Playgroud)
谢谢.
我正在尝试根据属性子文档从我的数据库中获取文档列表.我正在使用的模型和模式是:
var elementSchema = new mongoose.Schema({
name: String,
description: String,
_story: { type: mongoose.Schema.Types.ObjectId, ref: 'Story' },
date_created: Date,
date_modified: Date,
};
var storySchema = new mongoose.Schema({
title: {type: String, default: '', trim: true},
isPrivate: {type: Boolean, default: false},
});
mongoose.model("Story", storySchema);
mongoose.model("Element", elementSchema);
Run Code Online (Sandbox Code Playgroud)
我试图让属于一个故事,是不是私人所有元素,并根据一些帖子,我看到在这里(1,2,3)解决方案是使用_story.isPrivate与发现.我现在正在这样做:
Element.find({'_story.isPrivate': false})
.populate('_story')
.exec(function(err, elements){
if(err){
return next(err);
}
else if(elements.length > 0){
return res.send(elements);
}
else{
return res.send(404, {message: "No elements found"});
}
});
Run Code Online (Sandbox Code Playgroud)
但结果总是一个空集(返回404).没有条件,find返回所有元素并正确填充_story.我还激活了调试输出以查看正在执行的查询,我得到了这个:
Mongoose: elements.find({ '_story.isPrivate': …Run Code Online (Sandbox Code Playgroud) 使用React和其他框架,现在通常使用npm和package.json来安装您将在前端使用的库.如果您正在开发通用/同构应用程序,这会引入前端和后端的依赖项存储在同一文件中的问题,从而创建一个大规模的依赖项列表.
如果你使用npm --save/ - save-dev两种类型的依赖项(前端,后端)变得混合,很难知道,而不是一个接一个地使用哪一个.
除了手动排序和管理依赖列表之外,还有什么方法可以使列表保持整洁?您管理依赖项列表的策略是什么?
我目前正在使用Backbone.Marionette来创建SPA,在其中一个视图中,用户可以使用未保存的更改进行导航.我可以控制其中一些事件,例如视图中的按钮和菜单选项,这会将用户带走,但是其他一些事件需要操作Backbone.Router或直接使用DOM事件.
我已经尝试过监听beforeunload(因为应用程序仍然加载hashchange不起作用)和(不起作用,因为你无法阻止浏览器导航).这些解决方案(1,2,3)不要在这种情况下工作时,JavaScript是永远不会卸载.
改变Backbone.Router似乎是最好的选择,但由于它是如何初始化的,我认为不可能引入这个功能,或者至少我找不到这样做的方法.例如,此解决方案不起作用,因为hashchange不可取消(您不能在其上调用stopPropagation),并且此其他解决方案不起作用,因为navigate未在Backbone.Router对象上定义.
有什么建议?
通用或服务器端渲染会在将页面发送到客户端之前组成页面。那时,除非使用cookie,否则用户没有机会提交任何凭据。JWT鼓励使用LocalStorage而不是cookie来存储令牌,我认为这是一个好习惯。
我正在尝试为类似于博客的应用设置SSR。用户创建的内容可以是公开的(任何人都可以找到并阅读)或私有的(只有用户和协作者才可以找到并阅读)。在SSR上处理公共内容很容易,但是私有内容需要存储在LocalStorage中的令牌。
我能想到的最好的解决方案是发送一个存根,或者一个加载页面,客户端可以从中将凭据发送到服务器以检索私有内容。我看到的这种方法的问题是一种私密性:显示加载页面或存根会泄漏出该URL上实际上有内容,即使由于没有凭据而解析为404时也是如此。发送存根/加载页面以获取所有公共或私人内容的内容,将会破坏服务器端呈现的目的。
所以我的问题是,处理需要身份验证而不使用Cookie的呈现内容的最佳实践是什么?欢迎任何示例。尽管我目前使用的是Angular 5,但任何框架都可以。
authentication privacy jwt angular-universal react-universal
我有以下几点docker-compose.yml:
version: '3'
services:
web:
build: .
image: webapp
env_file: .env.docker
ports:
- "3000:3000"
links:
- redis
- mongo
redis:
image: "redis:alpine"
mongo:
image: "mongo"
Run Code Online (Sandbox Code Playgroud)
我使用以下环境变量连接到 Mongo 和 Redis
REDIS_URL=redis://redis:6379
DATABASE_URL=mongodb://mongo:27017/webapp
Run Code Online (Sandbox Code Playgroud)
使用此配置,当应用程序启动时,它可以连接到 Mongo 容器,但无法连接到 Redis,并出现以下错误:
Error: connect ECONNREFUSED 127.0.0.1:6379
Run Code Online (Sandbox Code Playgroud)
我尝试公开和映射端口:
expose:
- "6379"
ports:
- "6379:6379"
Run Code Online (Sandbox Code Playgroud)
但它仍然没有解决问题。映射端口 我可以使用 redis-cli 连接到 Redis,所以我知道容器正在运行。
有什么线索吗?
编辑:在没有 Docker 的情况下在我的机器上运行 webapp 正常工作。我尝试了本机 Redis 和 Mongo 以及运行docker-compose下面的注释web部分并映射端口。
编辑 2:输出 lsof
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
com.docke …Run Code Online (Sandbox Code Playgroud) 我正在使用Express over Node.js,我正在为我的应用程序加载视图(一个屏幕会在获取数据时显示)但是当我在本地测试时,显然没有延迟来自服务器,我无法看到屏幕是否正常工作.
是否有可能在Node.js中为所有响应引入延迟而无需为每个响应添加setTimeout?
我尝试了慢速代理,但它无法在HTML中加载绝对路径(例如/img/item.png被映射为而不是/proxy/2000/img/item.png).
使用feathers-authentication,可以使用可配置的用户名字段对用户进行身份验证。目前,我可以配置身份验证以使用我的用户模型的usernameORemail字段,但我想向我们的用户提供两个选项usernameAND email。
这样做的最佳方法是什么?
node.js ×4
express ×2
javascript ×2
backbone.js ×1
docker ×1
feathersjs ×1
jquery ×1
jwt ×1
mongoose ×1
npm ×1
privacy ×1
reactjs ×1