Доступ к функциям из файла JS, который находится в публичном каталоге - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть файл JS в папке с именем public, в котором также есть мой файл CSS.Я пытаюсь получить доступ к функции из файла JS (scripts.js), но мне не повезло.Я подписался на этот пост (среди прочих), но все равно получаю ошибку Error: Cannot find module './scripts.js'.Если кто-нибудь может мне помочь, это было бы здорово.

app.js

var express = require("express");
var app = express();
var bodyParser = require("body-parser");
var request = require("request");
var scripts = require("/scripts.js");
app.use(bodyParser.urlencoded({extended: true}));
app.set("view engine", "ejs");

app.use(express.static(__dirname + '/public'));

const apiUrl = "https://api.darksky.net/forecast/"; 
const apiKey = "XXX";

app.get('/', function(req, res){
    res.render("index");
});

app.post('/results', function(req, res){
    var lat = req.body.latitude;
    var long = req.body.longitude;
    request(apiUrl + apiKey + "/" + long + "," + lat, function(error, response, body){
        if (!error && response.statusCode == 200) {
            var data = JSON.parse(body);
            var temperature = scripts.converter(data.currently.temperature)
            res.render("results", {data: data, temperature: temperature})
        } else {
            console.log(response.body);
        }
    });
});

app.get('/results', function(req, res){
    res.render("results");
});

app.listen(3000, function(){
    console.log("Server has started");
})

scripts.js

module.converter = function(cel) {
        var cel = (far - 32) * (5/9);
        return cel;
}

exports.data = module;

1 Ответ

0 голосов
/ 21 февраля 2019

Неправильный путь к вашему модулю.Вместо этого попробуйте var scripts = require("./public/scripts.js");.

Вы загружаете /scripts.js, который представляет собой scripts.js файл, расположенный на ваших компьютерах root .Чтобы загрузить файл в текущем каталоге, вы должны сделать ./scripts.js.В каталоге выше текущего это будет ../scripts.js.

Если файл находится в каталоге ниже текущего каталога, как в вашем случае, это будет «./directoryname/scripts.js».,directoryname будучи public в вашем случае

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...