在express应用程序中,通过客户端js中的CDN导入模块



我正在为一个项目使用express和ejs模板。我想使用客户端javascript文件(public/js/app.js(上的库moment.js来创建一个动态日历,我正在使用moment.jss的CDN链接,但不知何故它不起作用。导入不起作用。

Heirarchy

|---index.js
|
|---views
|     |
|     |---calendar.ejs
|
|---public
|
|---css
|    |
|    |---style.css
|
|---js
|
|---app.js

index.js

app.set('view engine', 'ejs');
app.use(express.static(path.join(__dirname, 'public')));
app.get('/', (req, res) => {
res.render('calendar');
});

index.ejs

<head>
........
<link rel="stylesheet" type="text/css" href="css/style.css"/>
</head
<body>
........
<script type="module" src="https://momentjs.com/downloads/moment-with-locales.js"></script>
<script src="js/app.js"></script>
</body>

每次都抛出错误Uncaught ReferenceError: moment is not defined

当您删除type="module":时,它会起作用

<script src="https://momentjs.com/downloads/moment-with-locales.js"></script>
<script src="js/app.js"></script>

或者你可以:

  1. 从复制代码https://momentjs.com/downloads/moment-with-locales.js
  2. 在public/js中创建moment.js文件
  3. 把代码粘贴到那里
  4. 将其加载到HTML中,如下所示:<script src="js/moment.js"></script>

最新更新