Node.js и экспресс-связь

#javascript #node.js #express #node-modules

#javascript #node.js #экспресс #узлы-модули

Вопрос:

Я пытаюсь понять связь между Node.js и выражать.

Мой код для создания Node.js Сервер:

 const https = require('https');
const fs = require('fs');

const options = {
  key: fs.readFileSync('./https1/key.pem'),
  cert: fs.readFileSync('./https1/cert.pem')
};

const server  = https.createServer(options, function(req,res){
  res.writeHead(200);
  res.end(`Hello world!!!!!!!!!!! n`);
});

server.listen(3000, function(){
  console.log('Server listening on port 3000 n');
});
  

Я запускаю операцию curl curl -k localhost:3000 , и она выдает мне вывод «Привет, мир»

Мой код для создания экспресс-сервера:

 // call the packages we need
var express    = require('express');       
var app        = express();                 
var bodyParser = require('body-parser');

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

var port = process.env.PORT || 8080;

// ROUTES FOR OUR API
var router = express.Router();
// test route to make sure everything is working (accessed at GET    http://localhost:8080/api)
router.get('/', function(req, res) {
    res.json({ message: 'hooray! welcome to our api!' });   
});
app.listen(port);
console.log('Magic happens on port '   port);
  

Возможно ли для нас смешать оба из них?

Чтобы быть более конкретным, я хотел бы создать свой сервер, используя Node.js способ, но я создаю свои маршруты, используя экспресс-способ. Могу ли я это сделать или мне просто следовать одной методологии? Какова связь между Node.js и выражать? Я понимаю, что Express — это просто фреймворк для Node.js но где именно происходит отклонение, если оно вообще есть?

Могу ли я смешивать и комбинировать эти два, когда требуется?

Спасибо

Ответ №1:

Да, вы можете комбинировать nodejs и express , но я не призываю вас комбинировать их, если у вас нет конкретной цели, такой как использование AWS lambda или выполнение определенных задач ОС, которые должны выполняться только с помощью pure node.

Как вы уже знаете, express это всего лишь фреймворк. Вы можете написать код короче, используя express .

Например, чтобы браузер отображал Hello world,

 // nodejs version

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World!n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});



// express version

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

const port = 3000;

app.listen(port, (req, res) => {
  res.send('Hello World!n');
})
  

Более простой и интуитивно понятный.

Комментарии:

1. И как вы предлагаете создать https-сервер с express?

Ответ №2:

Вы наверняка можете таким образом создать безопасный HTTPS-сервер с помощью express, которому следуют в большинстве проектов

 const https = require('https');
const express    = require('express');
const app = express();

const options = {
    key: fs.readFileSync('./https1/key.pem'),
    cert: fs.readFileSync('./https1/cert.pem')
};
const server = https.createServer(options, app);


app.get('/', (req, res) => {
res.send('hello world')
}
server.listen(config.port, () => {
  console.log(`Express server listening on port ${port} in ${app.get('env')} mode`);
});  

Теперь добавьте свои маршруты и все остальное.