Я поместил свои js в общедоступный каталог и пытаюсь загрузить js в свой HTML, но получаю сообщение об ошибке.
var express=require('express');
var bodyparser=require('body-parser');
var path=require("path");
var multer=require("multer");
console.info(__dirname);
var app=express();
var upload = multer({ dest: __dirname + '/uploads/' });
// app.set('views', __dirname + '/views');
app.use(bodyparser.json());
app.use(bodyparser.urlencoded({extended:true}));
app.use(express.static(path.join(__dirname, 'public')));
app.engine('html', require('ejs').renderFile);
app.get('/',(req,res)=>{
res.render('some.ejs');
});
app.post('/',upload.single('upl'),(req,res)=>{
console.info(req.body);
console.info(req.file);
})
app.listen(3000,()=>{
console.info("server is up");
})
Вот мой HTML-код для загрузки JS:
<script src = "/public/web.js"></script>
структура каталогов
├ public
| └ web.js
├ views
| └ some.ejs
└ server.js
Также после добавления express.static, упомянутого в ответе ниже, вам необходимо изменить свой путь, например, <script src = "/web.js"></script>, часть / public не требуется.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Для обслуживания статических файлов, таких как изображения, файлы CSS и файлы JavaScript, используйте встроенную функцию промежуточного программного обеспечения express.static в Express.
app.use(express.static('public'))
теперь вы можете обслуживать статические файлы, такие как js, css и изображения.
Чтобы передать файл с сервера клиенту, вы должны объявить каталог как статический.
Используя экспресс, вы можете сделать это, используя,
app.use(express.static('PublicDirectoryPath'))
Чтобы получить файлы из общедоступного каталога,
<script src = "FilePathUnderPublicDirectory"></script>
Обновленный код:
Теперь ваш файл server.js должен быть
var express=require('express');
var bodyparser=require('body-parser');
var path=require("path");
var multer=require("multer");
console.info(__dirname);
var app=express();
app.use(express.static('public'));
var upload = multer({ dest: __dirname + '/uploads/' });
// app.set('views', __dirname + '/views');
app.use(bodyparser.json());
app.use(bodyparser.urlencoded({extended:true}));
app.use(express.static(path.join(__dirname, 'public')));
app.engine('html', require('ejs').renderFile);
app.get('/',(req,res)=>{
res.render('some.ejs');
});
app.post('/',upload.single('upl'),(req,res)=>{
console.info(req.body);
console.info(req.file);
})
app.listen(3000,()=>{
console.info("server is up");
})
Notice that I declare the public directory as a static directory at line 7.
Поскольку ваш web3.js находится непосредственно в каталоге public, во внешнем интерфейсе используйте
<script src = "/web.js"></script>
Для получения дополнительной информации, пожалуйста, проверьте док.
Пожалуйста, включите сообщение об ошибке.