Node.js module.exports的目的是什么,你如何使用它?
我似乎无法找到任何关于此的信息,但它似乎是Node.js的一个相当重要的部分,因为我经常在源代码中看到它.
根据Node.js文档:
模
对当前的参考
module.特别module.exports是与exports对象相同.有关src/node.js更多信息,请参阅
但这并没有真正帮助.
究竟module.exports做了什么,一个简单的例子是什么?
我一直在浏览Mozilla开发者网络上的JavaScript参考,我遇到了一些叫做的东西"strict mode".我读了它,我很难理解它的作用.有人可以简要解释(一般)它的目的是什么以及它有用吗?
我有一个脚本foo.js,其中包含我想在REPL中使用的一些函数.
有没有办法让节点执行我的脚本,然后跳转到一个包含所有声明的全局变量的REPL,就像我可以使用python -i foo.py或ghci foo.hs?
我想将代码分成不同的文件.我目前在同一个文件中编写所有get和post方法,但我想要更高的可读性和可管理性.
我试图将代码放在不同的文件中,但在运行主应用程序时,其他文件中的其余部分get和post方法都无法调用.我包括这个:
var Db = require('/ filename.js'); // ...但我无法调用这些方法.
我想拆分我的单个文件代码以便于阅读.我该如何实现这一目标?
是否有可能有一个主要的gulpfile.js从其他gulp files.js调用任务?简单的"要求"将子gulpfile.js放入主要的一个不起作用.我有一个平台项目,其中包括几个带有单独gulpfiles的子项目,所以我需要一个解决方案来管理所有子项目中的所有子项目
好吧,我看过这个网站并找到了几个不同的答案,其中没有一个对我有用.基本上有一个js文件,其中包含许多函数以及应用程序的主要代码.我想将我的所有函数移动到另一个js文件,以便我可以稍微清理一下我的代码.我对js相当新,但我知道在python中它就像从(路径)说"import(module)as(nickname)"一样简单
不管怎样,让我说我的functions.js模块中有一个名为show message的函数.
export function show_message(){
alert("Hello");
}
Run Code Online (Sandbox Code Playgroud)
然后我在我的main.js文件的顶部
import { show_message } from './functions.js'
//I have also tried to import like this:
import * as func from './functions.js'
//And then I call it
show_message();
//I have also tried
func.show_message();
Run Code Online (Sandbox Code Playgroud)
我知道这很简单,但正如我在任何地方所说的那样,我看到了不同的答案,其中没有一个适合我.我正在使用Firefox btw.我也在控制台中收到错误,说我的导入声明需要在我的模块的顶部,我通过在HTML链接中指定类型来修复它(脚本src ="/ static/main.js"type ="模块")错误消失但现在说"同源策略不允许在文件(路径)读取远程资源(原因:cors请求不是HTTP)."
另一个错误是"本文档中不允许使用模块源URI".
这让我觉得我的导入语法可能正确,错误在我的HTML代码中?
任何帮助表示赞赏.
这是对Node.js的后续问题,如何从其他文件中"包含"函数?
我想包含一个外部js文件,其中包含node.js应用程序的常用功能.
从In Node.js中的一个答案,如何从其他文件中"包含"函数?,这可以通过
// tools.js
// ========
module.exports = {
foo: function () {
// whatever
},
bar: function () {
// whatever
}
};
var zemba = function () {
}
Run Code Online (Sandbox Code Playgroud)
导出每个功能都不方便.是否可以使用单行程输出所有功能?看起来像这样的东西;
module.exports = 'all functions';
Run Code Online (Sandbox Code Playgroud)
这种方式更方便.如果忘记稍后导出某些功能,它也会减少错误.
如果不是单行,是否有更简单的替代方案,使编码更方便?我只想方便地包含一个由常用函数组成的外部js文件.像include <stdio.h>C/C++中的东西.
我安装了jade(npm install jade)并转到他们的github页面以获取一些示例.这就是我想要执行的:
code.jade:
- var title = "Things"
h1= title
ul#users
- each user, name in users
- if (user.isA == "ferret")
li(class: 'user-' + name) #{name} is just a ferret
- else
li(class: 'user-' + name) #{name} #{user.email}
Run Code Online (Sandbox Code Playgroud)
code.js:
var jade = require('jade');
var options = {
locals: {
users: {
tj: { age: 23, email: 'tj@vision-media.ca', isA: 'human' },
tobi: { age: 1, email: 'tobi@is-amazing.com', isA: 'ferret' }
}
}
};
console.log(jade)
jade.renderFile('code.jade', options, function(err, html){
if …Run Code Online (Sandbox Code Playgroud) 我有一堆.coffee文件,我需要加入一个文件.
我有像rails应用程序设置的文件夹:
/src/controller/log_controller.coffee
/src/model/log.coffee
/src/views/logs/new.coffee
Run Code Online (Sandbox Code Playgroud)
Coffeescript有一个命令,允许您将多个coffeescripts连接到一个文件中,但它似乎只能用于一个目录.例如,这工作正常:
coffee --output app/controllers.js --join --compile src/controllers/*.coffee
Run Code Online (Sandbox Code Playgroud)
但我需要能够包含一堆类似于这个非工作命令的子目录:
coffee --output app/all.js --join --compile src/*/*.coffee
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?是否有UNIX方法传递子目录中的所有文件的列表?
我在OSX中使用终端.
它们都必须加在一个文件中,因为否则每个单独的文件都会被编译和包装:
(function() { }).call(this);
Run Code Online (Sandbox Code Playgroud)
这打破了一些函数调用的范围.
我来自PHP背景,但我决定在我的最新项目中试用NodeJS(可能还有Express).什么是PHP的替代品包括模板HTML页面?我习惯做:
<?php include('header.php'); ?>
Run Code Online (Sandbox Code Playgroud)
我试过谷歌搜索和搜索Stack Overflow,但找不到NodeJS的替代品.
这些代码存储在单独的文件中,我试图将get方法从此文件调用到另一个nodejs,但我只将[Function]作为输出.
任何人都可以告诉我如何从这个文件调用get方法到另一个节点js文件
'use strict';
var createAPIRequest = require('../../lib/apirequest');
function Fitness(options) {
var self = this;
this._options = options || {};
this.users = {
dataSources: {
get: function(params, callback) {
var parameters = {
options: {
url: 'https://www.googleapis.com/fitness/v1/users/{userId}/dataSources/{dataSourceId}',
method: 'GET'
},
params: params,
requiredParams: ['userId', 'dataSourceId'],
pathParams: ['dataSourceId', 'userId'],
context: self
};
return createAPIRequest(parameters, callback);
} } }; }
Run Code Online (Sandbox Code Playgroud) 我有每个.js文件中需要调用的mysql连接代码.说我想sql.js从main.js.我在想include(sql.js)什么?
sql.js
var sql = require('sql');
var connection = sql.createConnection({
host : 'localhost',
user : 'root',
password : '',
database : 'db'
});
connection.connect(function(err){
if(!err) {
console.log("connected");
}
Run Code Online (Sandbox Code Playgroud) 我有一个看起来像这样的目录结构(两个文件夹都具有node_modules可用)
- task1
- src
- shorten.js
- task2
- src
- api.js
- server.js
Run Code Online (Sandbox Code Playgroud)
在shorten.js我有两个功能,即shorten(url)和checkLink(url)。在文件末尾,我有一些东西module.exports = shorten。
在api.js,我有一条线const shorten = require("../../task1/src/shorten");。如果仅shorten使用参数进行调用,就没有问题,但是当我尝试以checkLink类似方式进行调用时,问题就来了。
为了能够checkLink在task2的api.js内部调用,我该怎么办?
node.js ×10
javascript ×9
html ×2
coffeescript ×1
google-fit ×1
gulp ×1
header ×1
import ×1
module ×1
npm ×1
php ×1
php-include ×1
pug ×1
strict-mode ×1
terminal ×1