首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >nodeJs开发-01

nodeJs开发-01

作者头像
Tom2Code
发布2022-11-21 12:16:19
发布2022-11-21 12:16:19
5870
举报
文章被收录于专栏:TomTom

基础教程,简单记录一下

模块化的使用

1.新建ex.js 并且声明变量:

代码语言:javascript
复制
var val='hello world'
export {val}

2.新建im.js 并且导入模块

代码语言:javascript
复制
import {val} from './ex'
console.log(val)

3.在命令行使用node命令运行im.js

代码语言:javascript
复制
D:\codingSpace\nodeImooc\chapter02>node im.js
(node:10092) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
(Use `node --trace-warnings ...` to show where the warning was created)
D:\codingSpace\nodeImooc\chapter02\im.js:1
import {val} from './ex'
^^^^^^

SyntaxError: Cannot use import statement outside a module
    at wrapSafe (internal/modules/cjs/loader.js:1001:16)
    at Module._compile (internal/modules/cjs/loader.js:1049:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
    at Module.load (internal/modules/cjs/loader.js:950:32)
    at Function.Module._load (internal/modules/cjs/loader.js:790:12)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:75:12)
    at internal/main/run_main_module.js:17:47

报错

解决办法两个:

A.使用第一种,修改文件后缀 都修改成mjs结尾的文件

然后尝试运行:

并且修改im中的代码

代码语言:javascript
复制
import {val} from './ex.mjs'
console.log(val)

成功

B.添加配置文件

代码语言:javascript
复制
(node:6500) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.

添加配置文件package.json

代码语言:javascript
复制
{
  "type": "module"
}

运行成功

背后的故事:

ECMAScript Module规范

我们新建一个js文件

代码语言:javascript
复制
console.log(module)

输出如下:

代码语言:javascript
复制
D:\codingSpace\nodeImooc\chapter02>node ex.js
Module {
  id: '.',
  path: 'D:\\codingSpace\\nodeImooc\\chapter02',
  exports: {},
  parent: null,
  filename: 'D:\\codingSpace\\nodeImooc\\chapter02\\ex.js',
  loaded: false,
  children: [],
  paths: [
    'D:\\codingSpace\\nodeImooc\\chapter02\\node_modules',
    'D:\\codingSpace\\nodeImooc\\node_modules',
    'D:\\codingSpace\\node_modules',
    'D:\\node_modules'
  ]
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-08-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Tom的小院 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档