jjzjj

javascript 模块导出模式

谁能解释一下exports变量的用途:从backbone.js复制,我也注意到spine.js使用相同的模式。https://gist.github.com/1375748varBackbone;if(typeofexports!=='undefined'){Backbone=exports;}else{Backbone=root.Backbone={};} 最佳答案 该模块模式是CommonJS的一部分规范称为CommonJSModules:Inamodule,thereisafreevariablecalled"exports"

javascript - 在 express 中预编译 jade 模板对生产有好处吗

当在生产中使用jade-lang时,我是否会受益于某种形式的预编译所有.jadeView然后在res.render中使用它们的中间件?还是当您执行NODE_ENV=production时会自动发生?我只是在探索有关如何在生产环境中加快jade渲染的选项。 最佳答案 当Jade编译模板时,模板被缓存。在生产环境中如果预热缓存,则不需要预编译模板。即使您不这样做,模板也会在第一次编译后被缓存。我建议您查看Jade的源代码,以更好地理解它的工作原理。exports.render=function(str,options,fn){//...

javascript - Node JS 在 module.exports 中调用一个 "local"函数

如何在module.exports声明中从另一个函数中调用一个函数?我有MVC结构Nodejs项目和一个名为TestController.js的Controller。我想在Controller中访问方法,但是使用this关键字会出现以下错误:cannotcallmethodgetNameofundefined"usestrict"module.exports={myName:function(req,res,next){//accessingmethodwithincontrollerthis.getName(data);},getName:function(data){//code}

javascript - 未捕获的语法错误 : Unexpected token export

我在我的项目中使用了create-react-app。我收到错误UncaughtSyntaxError:Unexpectedtokenexport错误在这段代码中exportconstENGLISH={lang:'en',messages:{'nav.translatedMessage':'Social',}};我尝试安装babel-preset-es2015和babel-preset-stage-0。我还把babeldict/object包含在package.json中作为"babel":{"presets":["es2015","stage-0"]},我仍然遇到错误。

javascript - export `react-router` 从共享组件库重定向

我有一个正在构建的共享(React)组件库。我想包含一个PrivateRoute组件。但是,当我将模块库中的组件导入另一个应用程序时,出现错误:Error:Invariantfailed:YoushouldnotuseoutsideaPrivateRoute组件用身份验证逻辑包装了react-router/Route组件,并将未经身份验证的请求重定向到登录:组件库import{Route,Redirect}from'react-router';/*...*/classPrivateRouteextendsComponent{/*...*/render(){const{component

javascript - 令人困惑的 es6 import -> export 语句

这是有效的javascript吗?它没有错误,而且似乎有效。export{defaultasChooser}from"./chooser";我的解释是:importdefaultfrom./chooser"export#1的结果asChooser这是正在发生的事情吗? 最佳答案 IsthisvalidJavaScript?是的。Isthiswhatishappening?是的。 关于javascript-令人困惑的es6import->export语句,我们在StackOverflow上

javascript - 对这个 javascript 模式感到困惑

遇到下面几行代码,但是看不懂。这是什么(/.../)(this);在javascript中的目的?它有这个模式的名称吗?代码如下://Move.js(function(exports){exports.Move=function(){};})(this); 最佳答案 这个模式是一个“ImmediatelyInvokedFunctionExpresssion”。简而言之,它只是一个立即执行的函数。末尾的this是要发送到将作为exports访问的内部函数的参数(function(exports){//thatwas"this"outs

javascript - 使用 Supertest 和模拟数据库进行 Express JS 集成测试

是否可以使用supertest测试ExpressJSRESTAPI,但用模拟数据库对象替换实际的数据库连接?我有涵盖数据库模型和应用程序其他部分的单元测试以及建立实际数据库连接的API端点的功能测试,但我有一个奇怪的要求来创建类似于功能测试但使用模拟数据库连接的集成测试。下面是一个示例端点Controller:varmodel=require('../../../lib/models/list');module.exports={index:function(req,res){vardata={key:'domains',table:'demo.events'};vardataMode

javascript - `export default x` 和 `export {x as default}` 之间有区别吗?

我了解到,对于ES6模块导出,在导出的内容和导入的内容之间会发生绑定(bind),因此当导出的变量更改时,导入的变量将显示该更改。但是,我还读到,在某些情况下,导入的变量仅携带对导出变量的绑定(bind)。我的具体问题是在以下两种情况下导出变量的绑定(bind)方式是否存在差异......//Scenario#1leta=5;exportdefaulta;//Scenario#2leta=5;export{aasdefault}; 最佳答案 它们在一般情况下并不相同,尽管它们在函数和类的情况下可以表现相同。leta=4;export

javascript - ES6 类和 module.exports

最近我在nodeJS实现中看到了这种模式,其中我们的模块有以下代码:classFoo{bar(){console.log('bar');}}module.exports=Foo;然后当我做一个require最后说new来创建类的一个实例。varFoo=require(./foo);varmyFoo=newFoo();myFoo.bar();根据我的说法,这种模式将在每次调用时继续创建Foo类的多个实例。另一种模式可能是我在foo.js中习惯的模式。module.exports={bar:function(){console.log('bar');}};然后我只需要调用bar。varfo