假设我有一个名为app.js的文件.很简单:
var express = require('express');
var app = express.createServer();
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.get('/', function(req, res){
res.render('index', {locals: {
title: 'NowJS + Express Example'
}});
});
app.listen(8080);
Run Code Online (Sandbox Code Playgroud)
如果我在"tools.js"中有一个函数怎么办?如何导入它们以在apps.js中使用?
或者......我应该将"工具"变成一个模块,然后需要它吗?<<似乎很难,我宁愿做tools.js文件的基本导入.
我在Node.js模块中找到了以下合同:
module.exports = exports = nano = function database_module(cfg) {...}
Run Code Online (Sandbox Code Playgroud)
我不知道什么之间的不同module.exports和exports为什么都被用在这里.
我不知道如何在流星中进行测试驱动开发.
我在文档或常见问题解答中没有提到它.我没有看到任何例子或类似的东西.
我看到有些软件包正在使用Tinytest.
我需要开发人员的回应,这是什么路线图.有点像:
看着一个随机的源文件中的express为框架NodeJS,有我不理解的代码的两行(这行代码是典型的几乎所有文件的NodeJS).
/**
* Expose `Router` constructor.
*/
exports = module.exports = Router;
Run Code Online (Sandbox Code Playgroud)
和
/**
* Expose HTTP methods.
*/
var methods = exports.methods = require('./methods');
Run Code Online (Sandbox Code Playgroud)
我知道第一段代码 允许文件中的其余函数暴露给NodeJS应用程序,但我不明白它是如何工作的,或者行中的代码意味着什么.
做什么
exports和module.exports实际意味着什么?
我相信第二段代码允许文件中的函数访问methods,但同样,它是如何做到的.
基本上,这些神奇的词是什么:module和exports?
我是Javascript的新手,我在我阅读的代码中看到了很多导出和原型的用法.它们主要用于什么以及它们如何工作?
//from express
var Server = exports = module.exports = function HTTPSServer(options, middleware){
connect.HTTPSServer.call(this, options, []);
this.init(middleware);
};
Server.prototype.__proto__ = connect.HTTPSServer.prototype;
Run Code Online (Sandbox Code Playgroud) 刚开始使用Protractor进行E2E测试,我在测试用例结构上遇到了一些麻烦.
不确定我是否可以将我的测试划分为单独的规范,然后从另一个中调用它们,或者我如何制作好的辅助函数来处理它.
我正在通过转发器找到元素,然后我想对转发器中每个元素的每个操作进行测试.有点像:
describe('tasty', function () {
'use strict';
var ptor;
beforeEach(function () {
ptor = protractor.getInstance();
ptor.get('http://localhost:8000/');
});
it('Should sample three tasty fruits of every kind on my shopping list.', function () {
ptor.findElement(protractor.By.className('fruitstore')).click();
var fruitshelves = ptor.findElements(protractor.By.repeater('fruit in fruits').column('header'));
fruitshelves.then(function(arr) {
for (var i=0;i<arr.length; i++) {
// Pick up three fruits of this kind from the shelf and put in shopping cart
// Should be listed on my shopping list
// Open the wallet
// Should have money …Run Code Online (Sandbox Code Playgroud) 这是一个令人尴尬的初学者问题,但我只是想解决我对Sequelizejs的担忧.我想将每个模型拆分成自己的文件,以保持我的源组织.为了做到这一点,我需要require("sequelize')和var sequelize = new Sequelize('DB-Name', 'DB-User', 'DB-Password');每个文件的开始.
我的问题是,是否会为每个模型创建一个与数据库的新连接,还是会继续重复使用相同的连接?我应该放弃"每个文件一个模型"的整个概念,只创建一个主Models.js文件吗?
我是Node的新手,我仍然习惯于它的惯例.谢谢您的帮助!
我是node.js(和stackoverflow)的新手,并没有找到对此的确切解释.
这可能是一个试验性的答案,但希望它能帮助那些也从Python /其他面向对象框架过渡的人.
我已经看过其他关于原型概念在js中的文章,还有其他文章解释了node.js的module.exports.
我正在研究Ghost CMS,他们同时使用它们.我似乎无法找出为什么他们会在某些情况下选择一个而不是另一个.
任何帮助都表示赞赏,即使它指向其他链接.
我正在学习mean.io从本教程视频,其中显示了示例包(创建人mean package mymodule,也是在对"包"中描述的文档).我想帮助理解给定的身份验证/授权是如何工作的.
默认样本包/模块具有客户端上的简单用户身份验证
myapp/packages/mymodule/public/views/index.html包含:
<li>
<a href="mymodule/example/anyone">Server route that anyone can access</a>
</li>
<li>
<a href="mymodule/example/auth">Server route that requires authentication</a>
</li>
<li>
<a href="mymodule/example/admin">Server route that requires admin user</a>
</li>
Run Code Online (Sandbox Code Playgroud)
在服务器端,
myapp/packages/mymodule/server/routes/mymodule.js,包含:
// The Package is past automatically as first parameter
module.exports = function(Mymodule, app, auth, database) {
app.get('/mymodule/example/anyone', function(req, res, next) {
res.send('Anyone can access this');
});
app.get('/mymodule/example/auth', auth.requiresLogin, function(req, res, next) {
res.send('Only authenticated users can access …Run Code Online (Sandbox Code Playgroud) 开始学习node.js和backbone.js,并使用TodoMVC示例作为我的向导.有几个部分我无法绕过头脑.见下文.
这是app.js.
var express = require('express')
, http = require('http')
, mongoose = require('mongoose')
, models = require('./models')
, routes = require('./routes')
, app = express();
app.configure(function () {
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(require('stylus').middleware({ src: __dirname + '/public' }));
app.use(express.static(__dirname + '/public'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
});
app.configure('development', function () {
app.use(express.errorHandler());
});
routes.init(app);
mongoose.connect("127.0.0.1", "todomvc", 27017);
http.createServer(app).listen(3000);
console.log("Express server listening on port 3000");
Run Code Online (Sandbox Code Playgroud)
Heres是./models:
var mongoose = require('mongoose'),
TodoSchema = new mongoose.Schema({
title: { 'type': …Run Code Online (Sandbox Code Playgroud) javascript model-view-controller node.js backbone.js todomvc
node.js ×8
javascript ×6
express ×2
module ×2
backbone.js ×1
commonjs ×1
export ×1
header ×1
import ×1
mean.io ×1
meteor ×1
prototype ×1
protractor ×1
sequelize.js ×1
tdd ×1
todomvc ×1