#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`);
});
Теперь добавьте свои маршруты и все остальное.