你好,我是javascript的初学者。我试图在script.js中访问user.js的函数,但它也抛出了我附加在ss上的错误,下面是我正在做的实现。
我已经创建了4个文件
index.js(起始文件):
const express = require("express");
const app = express();
const path = require("path");
const { getUserName, getRoomUsers } = require("./utils/user");
const port = process.env.PORT || 3030;
app.set("view engine", "ejs");
app.use(express.static(path.join(__dirname, "public")));
app.use("/home", express.static("public"));
app.get("/home/welcome", (req, res) => {
res.render("home");
});
app.get("/", (req, res) => {
res.send("Welcomme to startup page!!");
});
app.listen(port);
home.ejs(在/视图中):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>welcome to home page</h1>
<script src="script.js"></script>
</body>
</html>
user.js(在/utils中):
let user = [];
function getUserName(id, room) {
const obj = users.find((user) => user.room === room && user.id === id);
return obj.username;
}
function getRoomUsers(room) {
return users.filter((user) => user.room === room);
}
function userJoin(id, username, room) {
const user = { id, username, room };
users.push(user);
return user;
}
module.exports = {
userJoin,
getRoomUsers,
getUserName,
};
script.js(公开/公开):
const { getUserName, getRoomUsers } = require('./../utils/user.js')
getRoomUsers("abcd")
运行此命令时,我得到以下错误
如何访问script.js中的user.js函数
2条答案
按热度按时间8ulbf1ek1#
require
不是javascript本机方法。哪个是node.js的请参阅:https://stackoverflow.com/a/9901097/16351248
而且,您可以使用本机javascript方法:
import
https://developer.mozilla.org/en-us/docs/web/javascript/reference/statements/importcqoc49vn2#
require
及module.exports
是node.js支持但浏览器不支持的commonjs模块的功能。现代浏览器支持es6模块(使用
import
及export
)所以你可以用这种格式重写你的模块。mdn有一个指南。或者,您可以使用parcel或webpack之类的工具将模块捆绑到一个与浏览器兼容的js文件中,并将其提供给浏览器。