Как запрашивать переменные из модуля в Node.js - получение синтаксической ошибки - PullRequest
1 голос
/ 03 марта 2020

У меня есть простой node.js https сервер, и я хотел бы извлечь часть сертификата в его собственный модуль. Но я получаю синтаксическую ошибку, я не уверен, что делаю неправильно ..

certificate.cert
           ^
SyntaxError: Unexpected token '.'

app. js

const https = require('https')
const express = require('express')
const certificate = require('./certificate.js')

const app = express()

const server = https.createServer({
    certificate.cert,
    certificate.key,
}, app)

server.listen(443)

сертификат. js

const fs = require('fs')

var certificate = {
    cert: fs.readFileSync('/etc/letsencrypt/live/www.4evergaming.com/cert.pem'),
    key: fs.readFileSync('/etc/letsencrypt/live/www.4evergaming.com/privkey.pem'),
}

exports.certificate = certificate

Когда я console.log(certificate) получаю этот вывод

{
    certificate: {
        cert: <Buffer 2d 2d 2d 2d 2d 51 12 47 49 4e 20 43 13 52 54 49 46 11 43 41 54 33 2d 2d 2d 2d 2d 0a 4d 49 49 46 75 54 40 43 42 4b 47 60 41 77 49 42 44>,
        key: <Buffer 2d 2d 2d 2d 2d 61 32 12 50 4e 30 40 52 49 56 41 54 45 20 4b 45 59 2d 2d 2d 2d 2d 0a 31 49 49 45 61 51 49 40 41 44 41 4e 42 67 6b 71 68 6c>,
    }
}

Ответы [ 4 ]

0 голосов
/ 03 марта 2020

В сертификат. js файл

const fs = require('fs')

var certificate = {
    cert: fs.readFileSync('/etc/letsencrypt/live/www.4evergaming.com/cert.pem'),
    key: fs.readFileSync('/etc/letsencrypt/live/www.4evergaming.com/privkey.pem'),
}

module.exports= certificate;
0 голосов
/ 03 марта 2020
var fs = require('fs');
var https = require('https');
var cert = require('./cert.js');

var express = require('express');
var app = express();

app.get('/', (req, res) => {
  res.send('Now using https..');
});


var server = https.createServer(cert.certificate, app);

server.listen(8000, () => {
  console.log("server starting on port : " + 8000)
  console.log(cert.certificate)
});


module.exports = app:
0 голосов
/ 03 марта 2020

Я думаю, что ваша ошибка довольно проста. Как сказано в вашем журнале, у объекта есть свойство certificate, которое является другим объектом со свойствами cert и key.

. Попробуйте это в вашем app.js:

const certificate = require('./certificate.js').certificate;

const server = https.createServer({
  certificate.cert,
  certificate.key,
}, app);

Или этот в certificate.js:

const fs = require('fs');

module.exports = {
    cert: fs.readFileSync('/etc/letsencrypt/live/www.4evergaming.com/cert.pem'),
    key: fs.readFileSync('/etc/letsencrypt/live/www.4evergaming.com/privkey.pem'),
};

Кроме того, я бы предложил всегда использовать module.exports (как в этом сообщении в блоге говорит). Ваша ошибка может быть связана с этим тоже.

0 голосов
/ 03 марта 2020

попробуйте:

fs.readFileSyn c ('/ etc / letsencrypt / live / www.4evergaming.com/cert.pem', 'utf8')

readFileSyn c возвращает буфер, если кодировка не определена

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