Использование модулей nodejs для веб-страницы html - PullRequest
0 голосов
/ 28 мая 2018

Я работаю над небольшим проектом, в котором Base64 кодирует строку, а затем хеширует ее.

Я использую Nodejs для размещения сервера:

#!/usr/bin/env nodejs
var http = require('http');
var fs = require('fs');

function onRequest(request, response){
  response.writeHead(200,{'Content-Type': 'text/html'});
  fs.readFile('./index.html',null, function(error, data){
    if (error) {
      response.writeHead(404);
      response.write('file not found');
    } else {
        response.write(data);
    }
    response.end();
  });
}

http.createServer(onRequest).listen(8000);
console.log('server is running!');

На странице HTMLЯ создал таблицу, в которой левая ячейка будет закодированными данными, а правая будет хеш-значением.

  <div class="container">
    <table id="table" class="table">
      <thead>
        <tr>
          <th>Encode</th>
          <th>Encrypt</th>
        </tr>
      </thead>
    </table>
  </div>

Для генерации значений я использую следующее:

<button onclick="addData()">Add a Row</button>

На этот скрипт ссылаются в верхней части HTML.

Наконец, вот JS, заполняющий ячейки при нажатии кнопки:

function addData(){
var table = document.getElementById("table");
var row = table.insertRow(1); //which number row the data is added from. row 0 is for the titles.
var cell1 = row.insertCell(0); //left cells
var cell2 = row.insertCell(1); //right cells
cell1.innerHTML = encode("value");
cell2.innerHTML = encrypt("value");
}

Если яудалите encode и encrypt и просто укажите значение, это работает.Но когда я представляю две свои функции для кодирования, а затем шифрования, HTML-код распечатывает всю функцию.

Функции:

function encode(string) {

  let buff = new Buffer(string);
  let base64data = buff.toString('base64');
  return base64data;
}

function encrypt(string) {
  let crypto = require('crypto');
  let hash = crypto.createHash('sha512').update(string).digest('base64');
  return hash;
}

Я получаю ошибку:

ReferenceError: Buffer is not defined[Learn More]

Итак, мой вопрос: почему я не могу использовать свои функции, использующие модули nodeJS?

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