关于项目部分的文件夹搭建如下:
arr.js是封装了一个数组求和的方法,并且利用commonJS方法导出
// 封装了一个求和函数
const getArraySum = (arr) => arr.reduce((sum, item) => sum += item, 0);
module.exports = {
getArraySum,
};
str.js封装的是一个判断用户名和密码的长度,并且利用commonJS方法导出
// 封装了一个判断用户名和密码的长度函数
const checkUserName = (username) => {
return username.length >= 8;
};
const checkPassword = (password) => {
return password.length >= 6;
};
module.exports = {
checkUser: checkUserName,
checkPwd: checkPassword,
};
新建一个index.js文件用来作为utils.js工具包的唯一出口(集中所有工具模块的方法,统一向外导出),代码如下:
// 本文件是utils.js工具包的唯一出口(集中所有工具模块的方法,统一向外导出)
const {getArraySum } = require('./lib/arr.js')
const {checkUser,checkPwd }= require('./lib/str.js')
// 统一导出所有函数
module.exports = {
getArraySum,
checkUser,
checkPwd
}
最后新建一个server.js文件用来导入在utils中的lib文件夹封装的两个方法
// 导入软件包,使用utils中的封装的工具函数
// ./utils是一个文件夹
const obj = require('./utils');
console.log(obj);
const result = obj.getArraySum([10, 20, 30]);
console.log(result);
打开终端
由于我的终端路径只到node文件夹,而我编写的代码都在js文件夹内,所以此次node命令书写为:node js/server.js ,运行结果如下
node的导入导出方法还有ECMAScript的默认导入导出以及命名导入导出,感兴趣的朋友可以尝试一下,语法格式大概如下,但是和上面搭建的项目结构有所不同,建议重新构建一个文件夹使用,或者找准文件路径也可以照常使用。
// const baseURL = 'http://hmajax.itheima.net';
// const getArraySum = (arr) => arr.reduce((sum, item) => sum += item, 0);
// commonJS导出
// module.exports = {
// url: baseURL,
// arraySum: getArraySum,
// };
// 默认导出
// export default {
// url: baseURL,
// arraySum: getArraySum,
// };
// // 命名导出
// export const baseURL = 'http://hmajax.itheima.net';
// export const getArraySum = (arr) => arr.reduce((sum, item) => sum += item, 0);
// const obj = require('./utils.js');
// console.log(obj);
// const result = obj.arraySum([5, 1, 2, 3]);
// console.log(result);
// // 默认导入模块
// import obj from './utils.js';
// console.log(obj);
// const result = obj.arraySum([10, 20, 30]);
// console.log(result);
// 命名导入
// import { baseURL, getArraySum } from './utils.js';
// console.log(baseURL);
// console.log(getArraySum);
// const result = getArraySum([10, 20, 30]);
// console.log(result);
以上三种node的导入导出方法,commonJS主要是在Node.js环境中使用的,EMCAScript的导入导出方法用于前端工程化(写前端主要推荐这一种写法)。 EMCAScript的两种导入导出方法的主要区别是在于命名导入导出可以按需求导入导出。