繁体   English   中英

Node.js与Express的关系

[英]Node.js and Express relationship

我试图了解Node.js和Express之间的连接。

我用于创建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 ,它给我一个“ Hello World”输出

我用于创建Express Server的代码:

// 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方式创建服务器,但是要使用Express方式创建路由。 我可以这样做还是应该只采用一种方法? Node.js和Express之间的连接是什么? 我知道Express只是Node.js的框架,但是如果有的话,偏差到底发生在哪里?

我可以在需要时将两者混合并结合吗?

谢谢

您肯定可以通过这种方式在大多数项目中创建带有Express和Follow的安全HTTPS服务器

 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`); }); 

现在添加您的路线和所有路线。

是的,您可以结合使用nodejsexpress ,但是不鼓励您结合使用它们,除非您有特定的用途,例如使用AWS lambda或执行仅由纯节点执行的特定OS任务。

如您所知, 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');
})

更容易,更直观。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM