我的最终目标是使每个服务器实例的node.js更具成本效益.
我不是在运营游戏或聊天室,而是为客户提供简单的网站.我想在一台服务器上容纳多个客户端,但是有多个网站使用主机头映射运行端口80.我想仍然使用快递,因为我正在做,但它更像是从端口80到其他节点应用程序的路由事件,如果这是可能的.如果它以这种方式完成节点可以更便宜,但目前它对我的目的而言更昂贵,因为如果在端口80上运行,每个客户都需要自己的盒子.此外,我的动机是关注节点开发但是必须有理由这样做所以在成本方面.
我在Windows中为ASP.NET做了很多这样的事情,因为IIS支持这种开箱即用的功能,我知道这对Apache来说也是正常的.
如果这不是正确的问题或者给予建设性的批评而不是随机的downvote,请随意将其移至堆栈交换中的另一个论坛.谢谢.
更新
我采用的方法是使用静态托管(通过gatspy和s3),然后使用API,通过来自客户端的邮件和来自服务器的API密钥注册域名,并在站点更改时定期生成静态站点,但感谢所有建议!
当我从node.js预编译并公开JS模板文件时,我能够使用nunjucks的客户端模板.我这样调用客户端模板:
nunjucks.render('partials/some-template.html', { abc: 123 })
Run Code Online (Sandbox Code Playgroud)
并得到一个字符串.
我怎么能像我试过的那样调用宏,但是我做错了.首先根据node.js在页面上声明宏,然后在Node.js中调用连续时间:
{% include 'macros/checkbox.html' %}
...
{{ checkbox('you cool?', 'cool', false) }}
{{ checkbox('you collected?', 'collected', false) }}
Run Code Online (Sandbox Code Playgroud)
但不知道如何获取宏,然后在客户端再次调用它.到目前为止,我确实努力在控制台中进行检查,但没有运气.
我正在创建一个Web应用程序,无论如何都要进行自己的测试以确认,但是想知道是否有人在绑定/解除绑定时有这方面的经验等.例如我想首先销毁当前内容容器的事件和子项的事件,然后在将新内容加载到DIV中时,基于远程脚本加载并附加新事件.我可以遍历,但想想它是否已经确实很好.只要我将事件范围保持在内容DIV中,这种方法就可以在保持复杂性方面进行扩展.
根据要求,我正在解释我正在做的事情背后的目的.
我正在寻找创建一个可维护的AJAX Web应用程序.想象一下,您可以向其中添加数百个页面/脚本,并且当您请求新内容时,被调用者不需要知道除URL之外的任何内容.这就是我想要的.我已经使用iframe覆盖完成了这项工作并且运行良好但是我主要关心的是做纯AJAX是在不需要它之后在内存中留下的代码,例如事件和闭包引用等.在这方面,iframe覆盖有其优点,因为没有太多考虑参与其中但每次加载新网址的速度较慢,如果您希望页面的某些部分更新,则该方法无法很好地集成.
所以思考过程就是创建一种方法,让父DIV通过jQuery加载方法注入新的HTML.加载方法也具有执行脚本的巨大副作用.因此,如果我使用这种方法,我需要创建一个这样做的系统,它不会使浏览器膨胀并留下奇怪的事件行为等.这可能是另一个问题.
UPDATE
我在回复投票看到这个弹出窗口后回答了我的问题.如果使用事件冒泡方法在父级别附加事件,则这实际上不是问题.请参阅下面的答案.
像我这样的内容版主可能会被这个问题绊倒并标记为重复,因为有类似命名的库,如 React Navigation,与此无关。
有没有一种通用的方法来为 push/pop 自定义过渡动画?实验后,文档似乎稀疏且不正确。
默认推送动画从右向左移动。在某些情况下,我希望能够将其覆盖为从左到右或从上到下等。
在使用“动画”和“x”或“y”属性时,按推送/弹出执行此操作似乎不起作用。
这是我尝试过的示例。
class MyComponent extends React.PureComponent {
static options(passProps) {
return {
animations: {
push: {
content: {
x: {
from: -1000, to: 0, duration: 300
},
y: {
from: 0, to: 0, duration: 300
}
}
},
pop: {
content: {
x: {
from: 0, to: -1000, duration: 300
},
y: {
from: 0, to: 0, duration: 300
}
}
}
}
}
}
} …Run Code Online (Sandbox Code Playgroud) 为了使mongoose设置更容易,我在/ lib目录中创建了一个mongoose.js文件.它设置mongoose所以消耗模块可以准备连接等.问题是,当尝试访问product.js上的mongoose.Schema方法时,它会抛出未定义的方法.在为我自己的对象做类似的练习时,这不会发生.这是有问题的代码.
/lib/mongoose.js(lib文件)
var mongoose = require('mongoose');
mongoose.connect(process.env.PPC_API_MONGODB_URL);
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function callback () {
console.log('db open');
});
exports = mongoose;
Run Code Online (Sandbox Code Playgroud)
/models/product.js (消费文件)
var mongoose = require('../lib/mongoose.js');
var productSchema = mongoose.Schema({ // results in method undefined here
name: String
});
exports = mongoose.model('Product', productSchema);
Run Code Online (Sandbox Code Playgroud)
如果我在/lib/mongoose.js中执行以下操作,我可以使其工作
exports.mongoose = mongoose;
Run Code Online (Sandbox Code Playgroud)
然后在/models/product.js中
var mongoose = require('mongoose').mongoose;
Run Code Online (Sandbox Code Playgroud)
但这不干净,我只是不明白为什么第一个选项不起作用.
如果您可以向我展示我做错了什么或解释为什么第一种方法不起作用,那么我的投票结果将被视为已核对的答案.