Hướng dẫn can we connect node.js with html? - chúng ta có thể kết nối node.js với html không?

Tôi mới sử dụng Node.js và tôi đang cố gắng tạo một cách dễ dàng để người dùng nhập dữ liệu vào biểu mẫu HTML, sau đó khi nhấp vào gửi dữ liệu được chuyển đến tập lệnh Node.js. Tập lệnh Node.js là một tập lệnh bài đăng lấy dữ liệu được nhập của người dùng và sau đó tạo một bài đăng lên API và nhận được trả lại trong JSON từ API. Tôi đang cố gắng để JSON trả lại để được in lại trên trang HTML. Làm thế nào để bạn làm điều này một cách sạch sẽ và dễ dàng?



  
    
    Commute | Ad-hoc
      
      

  

  

      

Manual Query

Multi-Query (.tsv)

Result

Tập lệnh bài đăng Node.js của tôi:

var request = require("request");

var options = { method: 'POST',
  url: 'http://blah:8000/blah/blah/blah/blah/[latitude_origin]/[longitude_origin]/',
  headers:
   { 'postman-token': 'blah',
     'cache-control': 'no-cache' },
  body: '{"query1":[latitude_dest,longitude_dest]}' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

ExpressJS là một khung web NodeJS phổ biến. ExpressJS cho phép bạn phát triển một máy chủ web tùy chỉnh theo yêu cầu dự án của bạn. Dự án Express có thể được mở rộng bằng cách cài đặt các mô -đun nút khác nhau. Tuy nhiên, bạn không cần phải cài đặt nhiều gói để xử lý các tệp HTML và hiển thị chúng trong phản hồi.

Trong hướng dẫn ngắn này, tôi sẽ giải thích cho bạn cách hiển thị các tệp HTML trong máy chủ NodeJS và ExpressJS tùy chỉnh. Bạn không cần phải cài đặt bất kỳ mô -đun bổ sung nào để hiển thị tệp HTML trong Express. Chỉ cần cài đặt Express và bạn tốt để đi.

Bước 1: Cài đặt Express

Tạo một thư mục mới và khởi tạo một dự án nút mới bằng lệnh sau.

Hãy để cài đặt Express Express.

NPM Cài đặt -Save Express

Tuyệt quá. Hãy để tiến về phía trước và tìm hiểu về chức năng mà chúng tôi sẽ sử dụng để hiển thị tệp HTML trong Express.

Bước 2: Sử dụng hàm sendFile ()

ExpressJS cung cấp hàm sendFile () về cơ bản sẽ gửi các tệp HTML đến trình duyệt, sau đó tự động được trình duyệt giải thích. Tất cả những gì chúng ta cần làm là trong mọi tuyến đường để cung cấp một tệp HTML thích hợp.sendFile() function which will basically send HTML files to browser which then automatically interpreted by browser. All we need to do is in every route to deliver an appropriate HTML file.

For.eg: Khi người dùng nhấn URL Main Deling Index.html:
When user hit main URL deliver index.html :

// Ứng dụng giả sử là đối tượng Express. app.get ('/', function (req, res) {& nbsp; res.sendfile ('index.html');});
app.get('/',function(req,res) {
  res.sendFile('index.html');
});

Mã này là mục đích ví dụ. Nó sẽ gây ra lỗi phân giải thư mục.

Tôi sẽ phát triển một trang web đơn giản bao gồm 3 trang tức là trang chủ, về trang, trang liên kết trang web. Tôi sẽ sử dụng bootstrap để thiết kế và jQuery để xử lý sự kiện.

Cấu trúc thư mục :

----- node_modules |-+ express ---+ index.html ---+ about.html ---+ index.html --- app.js ---- pack.json
|--+express
---+ index.html
---+ about.html
---+ index.html
--- app.js
----package.json

package.json

{& nbsp; & nbsp; "Tên": "htmlrender", & nbsp; & nbsp; "Phiên bản": "1.0.0", & nbsp; & nbsp; "Mô tả": "", & nbsp; & nbsp; "Chính": "index.js", & nbsp; & nbsp; "tập lệnh": {& nbsp; & nbsp; & nbsp; & nbsp; "Kiểm tra": "" & nbsp; & nbsp; }, & nbsp; & nbsp; "Từ khóa": [], & nbsp; & nbsp; "Tác giả": "", & nbsp; & nbsp; "Giấy phép": "ISC", & NBSP; & nbsp; "phụ thuộc": {& nbsp; & nbsp; & nbsp; & nbsp; "Express": "^4.16.4" & nbsp; & nbsp; }}
    "name": "htmlRender",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "scripts": {
        "test": ""
    },
    "keywords": [],
    "author": "",
    "license": "ISC",
    "dependencies": {
        "express": "^4.16.4"
    }
}

Đây là mã máy chủ Express của chúng tôi.

app.js

const express = yêu cầu ('express'); const app = express (); const path = abor ('path'); const router = express.router (); express = require('express');
const app = express();
const path = require('path');
const router = express.Router();

router.get ('/', function (req, res) {& nbsp; res.sendfile (path.join (__ dirname+'/index.html')); & nbsp; // __ dirname: nó sẽ giải quyết cho thư mục dự án của bạn.} );get('/',function(req,res){
  res.sendFile(path.join(__dirname+'/index.html'));
  //__dirname : It will resolve to your project folder.
});

router.get ('/about', function (req, res) {& nbsp; res.sendfile (path.join (__ dirname+'/about.html'));});get('/about',function(req,res){
  res.sendFile(path.join(__dirname+'/about.html'));
});

router.get ('/stemap', function (req, res) {& nbsp; res.sendfile (path.join (__ dirname+'/sitemap.html'));});get('/sitemap',function(req,res){
  res.sendFile(path.join(__dirname+'/sitemap.html'));
});

// Thêm ứng dụng bộ định tuyến.use ('/', bộ định tuyến); app.listen (Process.Env.Port || 3000);
app.use('/', router);
app.listen(process.env.port || 3000);

Console.log ('Chạy tại cổng 3000');log('Running at Port 3000');

Đây là tệp HTML của chúng tôi. Tôi sẽ chỉ hiển thị index.html.

index.html

& nbsp; Thể hiện HTML & NBSP; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; class = "Navbar Navbar-inverse-inverse-static-top"> & nbsp; & nbsp; & nbsp; Thể hiện HTML & NBSP; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Nhà & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Về & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; SITEMAP & NBSP; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Chào thế giới! & nbsp; & nbsp; & nbsp; Đây là một đơn vị anh hùng đơn giản, một thành phần kiểu Jumbotron đơn giản để kêu gọi chú ý thêm đến nội dung hoặc thông tin đặc trưng. & nbsp; & nbsp; & nbsp; Tìm hiểu thêm & NBSP; & nbsp; & nbsp;html>
<head>
  <title>Express HTML</title>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap-theme.min.css">
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
</head>
<body>
  <div style="margin:100px;">
    class="navbar navbar-inverse navbar-static-top">
  <div class="container">
    <a class="navbar-brand" href="/">Express HTML</a>
    <ul class="nav navbar-nav">
      <li class="active">
        <a href="/">Home</a>
      </li>
      <li>
        <a href="/about">About</a>
      </li>
      <li>
        <a href="/sitemap">Sitemap</a>
      </li>
    </ul>
  </div>
</nav>
    <div class="jumbotron"  style="padding:40px;">
      <h2>Hello, world!</h2>
      <p>This is a simple hero unit, a simple jumbotron-style component for calling extra attention to featured content or information.</p>
      <p><a class="btn btn-primary btn-lg" href="#" role="button">Learn more</a></p>
    </div>
  </div>
</body>
</html>

Đây là đầu ra.

Hướng dẫn can we connect node.js with html? - chúng ta có thể kết nối node.js với html không?

Bước 4: Kết xuất HTML động bằng công cụ tạo khuôn mẫu

Trong mã được hiển thị ở trên, chúng tôi hiển thị các tệp HTML tĩnh. Tuy nhiên, có những kịch bản mà chúng ta cần hiển thị các mẫu HTML động. Trước khi bạn bị nhầm lẫn giữa các mẫu tĩnh và động, hãy để tôi giải thích một cách nhanh chóng.

Trong các mẫu tĩnh, chúng tôi không thể vượt qua các biến tùy chỉnh và tùy chỉnh mẫu dựa trên nhu cầu của chúng tôi. Trong các mẫu động, chúng ta có thể truyền các biến động và hiển thị các tệp HTML với các giá trị khác nhau.

Hãy để xây dựng một dự án đơn giản để hiểu về khuôn mẫu trong Express. Tôi sẽ sử dụng công cụ tạo khuôn viên PUG rất phổ biến và được giới thiệu bởi Express. Trên thực tế, chúng tôi cũng sử dụng PUG cho trang web này, trang này được hiển thị bằng các mẫu PUG.pug templating engine which is very popular and recommended by Express as well. We use Pug for this website as well, in fact, this page is rendered using Pug templates.

Hãy để cài đặt các phụ thuộc của chúng tôi.

Đây là mã máy chủ Express của chúng tôi.

app.js

const express = yêu cầu ("express"); const app = express (); const path = abor ("path"); const router = express.router (); express = require("express");
const app = express();
const path = require("path");
const router = express.Router();

app.set ("Xem động cơ", "pug"); app.set ("lượt xem", path.join (__ dirname, "lượt xem"));set("view engine", "pug");
app.set("views", path.join(__dirname, "views"));

router.get ("/", (req, res) => {& nbsp; res.Render ("index");});get("/", (req, res) => {
  res.render("index");
});

router.get ("/about", (req, res) => {& nbsp; res.render ("Giới thiệu", {title: "hey", tin nhắn: "Xin chào!"});});get("/about", (req, res) => {
  res.render("about", { title: "Hey", message: "Hello there!" });
});

app.use ("/", bộ định tuyến); app.listen (Process.Env.Port || 3000);use("/", router);
app.listen(process.env.port || 3000);

Console.log ("Chạy tại cổng 3000");log("Running at Port 3000");

Quan sát trong các bộ định tuyến, chúng tôi đang chuyển các giá trị động cho các mẫu pug. Dưới đây là mã của các mẫu pug cư trú trong thư mục chế độ xem.

index.pug

HTML & NBSP; đầu & nbsp; & nbsp; Tiêu đề HTML kết xuất bằng PUG & NBSP; cơ thể & nbsp; & nbsp; H2 Chào mừng
  head
    title Render HTML using PUG
  body
    h2 Welcome

about.pug

HTML & NBSP; đầu & nbsp; & nbsp; Tiêu đề = Tiêu đề & NBSP; cơ thể & nbsp; & nbsp; H2 = Tin nhắn
  head
    title= title
  body
    h2= message

Sau khi chạy mã này, điều hướng trình duyệt của bạn đến localhost: 3000/về, bạn sẽ thấy đầu ra HTML được hiển thị bằng các mẫu PUG.

Hướng dẫn can we connect node.js with html? - chúng ta có thể kết nối node.js với html không?

Đáng kinh ngạc. Các giá trị này có thể được tìm nạp từ cơ sở dữ liệu hoặc bất kỳ nguồn nào khác và được hiển thị bằng các mẫu PUG.

Các bài viết liên quan về cơ sở dữ liệu: Hướng dẫn cơ sở dữ liệu

đọc thêm

Đọc một số hướng dẫn tốt nhất của chúng tôi.

  • Cách phát hiện loại thiết bị trong Express
  • Xử lý lỗi bằng cách sử dụng phần mềm trung gian
  • Hướng dẫn hoàn chỉnh Express: Phần 1
  • Hướng dẫn của Node JS cho người mới bắt đầu từng bước với các ví dụ

Conclusion:

Có những kịch bản mà bạn cần phát triển một máy chủ web cung cấp các tệp HTML như cách Apache của bạn làm. Tuy nhiên, đây không phải là việc sử dụng tối ưu Node.js nhưng bạn có thể sử dụng một tính năng như vậy để đạt được một máy chủ web tùy chỉnh cho ứng dụng của riêng bạn.

Tôi có thể sử dụng nodejs với html không?

Chạy Nodemon để khởi động máy chủ. Bất cứ khi nào máy chủ đang chạy và truy cập tuyến http: // localhost: 3000/, nó sẽ xuất ra văn bản đơn giản Hello World! . Chúng ta có thể sử dụng cùng một máy chủ để hiển thị các phần tử HTML làm phản hồi của máy chủ thay vì gửi văn bản thuần túy.We can use the same server to render HTML elements as the server response instead of sending plain text.

Node JS có sử dụng HTML và CSS không?

Nút là JavaScript, nhưng không có tất cả các trình duyệt có, mỗi ngôn ngữ này đều có sự trừu tượng và supersets (như HAML cho HTML, SASS cho CSS, và TypeScript cho JavaScript, làm ví dụ), cũng như trình biên dịch và trình chuyển đổi và tất cả các loạiChuyển đổi chúng thành hình dạng này hoặc điều đó.Yes, each of these languages has abstractions and supersets (like HAML for HTML, Sass for CSS, and TypeScript for JavaScript, as examples), as well as compilers and transpilers and all kinds of things that transform them into this shape or that.

Làm thế nào gửi dữ liệu từ nút JS đến HTML?

Kết xuất tệp HTML trong nút ...
Bước 1: Cài đặt Express.Tạo một thư mục mới và khởi tạo một dự án nút mới bằng lệnh sau.....
Bước 2: Sử dụng hàm sendFile ().....
Bước 3: Kết xuất HTML trong Express.....
Bước 4: Kết xuất HTML động bằng công cụ tạo khuôn ..

Bạn có thể chạy Node JS trên một trang web không?

Nó sẽ yêu cầu một máy ảo, máy chủ web, máy chủ ứng dụng, ứng dụng Node.js và trình quản lý quy trình.Điều này sẽ đảm bảo rằng ứng dụng có sẵn từ xa, có thể truy cập bởi nhiều người dùng cùng một lúc và luôn chạy trong nền. js application, and a process manager. This will ensure that the application is available remotely, accessible by many users at once, and always running in the background.