[Node.js] 4. Modules
4.2 Missing Exports
Notice the two different files: high_five.js
on the left side andapp.js
on the right. The code as it's written will not work,high_five.js
isn't exporting anything.
Add the proper exports line to have a successful high five!
//high_five.js var highfive = function() { console.log("smack!!"); }; module.exports = highfive; //app.js var highfive = require('./high_five.js'); highfive();
Export A Function
Notice the app.js
file with the myRequest
function below. Let's refactor myRequest
out to its own my_request.js
module.
Move the myRequest
function and the http
require into my_request.js
var http = require('http'); var myRequest = function(message) { var request = http.request('http://codeschool.com', function(response) { response.pipe(process.stdout, { end: false }); }); request.write(message); request.end(); }; myRequest('Hello, this is dog.');
Answer:
// app.js myRequest('Hello, this is dog.'); //my_request.js var http = require('http'); var myRequest = function(message) { var request = http.request('http://codeschool.com', function(response) { response.pipe(process.stdout, { end: false }); }); request.write(message); request.end(); }; myRequest('Hello, this is dog.');
Export the myRequest
function.
module.exports = myRequest;
Require the my_request.js
module in app.js
.
var myRequest = require('./my_request'); myRequest('Hello, this is dog.');
Exporting An Object
The app.js
code on the right side does not work. Once again we forgot to export our functions.
In the logger.js
file, export the info
function so we can use it in app.js
by assigning it to the exports object.
app.js
var logger = require('./logger'); logger.info('This is some information'); logger.warn('something bad is happening');
logger.js
var warn = function(message) { console.log("Warning: " + message); }; var info = function(message) { console.log("Info: " + message); }; var error = function(message) { console.log("Error: " + message); };
Answer:
exports.info = function(message) { console.log("Info: " + message); };
In the logger.js
file, export the warn
function so we can use it in app.js
by assigning it to the exports object.
exports.warn = function(message) { console.log("Warning: " + message); };
In the logger.js
file, export the error
function so we can use it in app.js
by assigning it to the exports object.
exports.error = function(message) { console.log("Error: " + message); };
4.5 Installing Local Modules
Practice using npm
by installing the npm module underscore
using the npm install
command.
npm install underscore
4.6 Installing Global Modules
Now install the coffee-script
module, but install it globally so you can use the coffee
executable that comes with coffee-script
.
npm install coffee-script -g
4.7 Dependency
Add two dependencies to our package.json
file, connect andunderscore. We'll want to use version 2.1.1 of connect and version1.3.3 of underscore.
Add the connect
dependency to package.json
Add the underscore
dependency to package.json
{ "name": "My Awesome Node App", "version": "1", "dependencies": { "connect": "2.1.1", "underscore": "1.3.3" } }
4.8 Semantic Versioning
We want to make sure we are always up-to-date with the most recent patch-level changes to our dependencies when we run npm install
.
Update the connect
version on package.json
to fetch the latest patch-levelchanges. All we have to do is add one character to the beginning of the version number.
{ "name": "My Awesome Node App", "version": "1", "dependencies": { "connect": "~2.2.1", "underscore": "1.3.3" } }
Now update the underscore
version on package.json
to fetch the latestpatch-level changes. Again, all we have to do is add one character to the beginning of the version number.
{ "name": "My Awesome Node App", "version": "1", "dependencies": { "connect": "~2.2.1", "underscore": "~1.3.3" } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具