[英]How can i pass a .js file into .ejs and node
我希望能夠將一個名為 popmotion 的庫加載到我的主頁中,該庫位於傳遞給 node/express 的 .ejs 文件中,目前我的文件 popmotion.js 中的代碼沒有運行,我希望能夠控制 dom 元素通過 popmotion.js 在 ejs 文件中提到,我得到控制台錯誤的引用錯誤,這表明安裝在節點模塊中的模塊 popmotion 未被識別,我不知道它是否與我的 list.ejs、app.js 或我的文件結構有關或者是其他東西
我的節點文件有這些依賴項
const express = require("express");
const bodyParser = require("body-parser");
const mongoose = require("mongoose");
const _ = require("lodash");
const popmotion = require("popmotion");
const app = express();
app.set('view engine', 'ejs');
app.use(bodyParser.urlencoded({extended: true}));
app.use(express.static("public"));
mongoose.set('useNewUrlParser', true);
mongoose.set('useFindAndModify', false);
mongoose.set('useCreateIndex', true);
mongoose.set('useUnifiedTopology', true);
mongoose.connect("mongodb://localhost:27017/todolistDB");
我的 list.ejs 看起來像這樣
<%- include("header") -%>
<div class="box" id="heading">
<h1> <%= listTitle %> </h1>
</div>
<div id="b"class="box ball">
<% newListItems.forEach(function(item){ %>
<form action="/delete" method="post">
<div class="item">
<input type="checkbox" name="checkbox" value="<%=item._id%>" onChange="this.form.submit()">
<p><%=item.name%></p>
</div>
<input type="hidden" name="listName" value="<%= listTitle %>"></input>
</form>
<% }) %>
<form class="item" action="/" method="post">
<input type="text" name="newItem" placeholder="New Item" autocomplete="off">
<button type="submit" name="list" value="<%= listTitle %>">+</button>
</form>
</div>
<%- include("footer") -%>
我還在 express 中包含了一個 static 公用文件夾以運行 styles.css 和 popmotion.js(我試圖在主頁上呈現的文件),我的文件結構看起來像這樣
您需要從前端代碼加載 popmotion 腳本。 因此,在您的 EJS 模板之一中,例如:
<script src="javascripts/popmotion.js"></script>
目前您正在將其作為節點模塊加載,當瀏覽器查看您的渲染模板時,瀏覽器無法使用該模塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.