Node js và javascript là song kiếm hợp bích

Bổ sung kiến thức cho bạn thôi :laughing:

1 Like

Mình đang tìm hiểu làm sao nhét cái my.js vào

Tạo file my.js, trong thư mục gốc
nội dung là :

alert("hello world");

Mình nhét vào thế này nó vẫn không hiểu

    var html = [
        '<html><body>',
'<script src="my.js" '></script>,
        '<div style="border:1px solid blue; margin:auto; width:600px; padding:5px;">',
        '<h2>W3 school</h2>',
        '<div>',
        '<a href="/">Home</a> | ',
        '<a href="/student">student</a> | ',
        '<a href="/admin">admin</a> | ',
        '<a href="/sfsfsf">More</a> | ',

what shoud we do???

1 Like

Nếu thích thì mình sẽ public một app NodeJS mình từng làm. App này xem video quản lý video trên Vimeo

  • Public đi :slight_smile:
  • Không, cảm ơn

0 voters

1 Like

Sao làm được cái đó vậy bạn, hay đấy!!!

Do mình học Java Web theo MVC, qua NodeJS xem vài cái webapp trên github là hiểu rõ cơ chế của nó ngay. Thế là làm luôn :laughing:
Thuejc ra mình chỉ nghiên cứu NodeJS để làm webapp MVC thôi, chứ mấy cái nâng cao như bạn @hungaya nói mình vẫn chưa tìm hiểu
Công nhận NodeJS nó phát triển quá nhanh, ôm hàng tá lĩnh vực :laughing:

2 Likes
<div data-poll-type="regular" data-poll-name="poll" data-poll-status="open" data-poll-public="true" class="poll"><div><div class="poll-container"><ul class="results"><li class="chosen"><div class="option"><p><span class="percentage">100%</span><span>Public đi <img src="/images/emoji/twitter/slight_smile.png?v=3" title=":slight_smile:" class="emoji" alt=":slight_smile:">
</span></p></div><div class="bar-back"><div style="width:100%" class="bar"></div></div><ul class="poll-voters-list"><div class="poll-voters"><li><a class="trigger-user-card " data-user-card="Thuc_Nguyen_tan"><img alt="" src="/letter_avatar_proxy/v2/letter/t/0ea827/20.png" title="Thuc_Nguyen_tan" class="avatar" width="20" height="20"></a> </li></div></ul></li><li class=""><div class="option"><p><span class="percentage">0%</span><span>Không, cảm ơn</span></p></div><div class="bar-back"><div style="width:0%" class="bar"></div></div><ul class="poll-voters-list"><div class="poll-voters"></div></ul></li></ul></div><div class="poll-info"><p><span class="info-number">1</span><span class="info-text">voter</span></p></div><div class="poll-buttons"><button class="widget-button btn toggle-results" aria-label="Back to your votes" title="Back to your votes"><i class="fa fa-eye-slash" aria-hidden="true"></i>Hide results</button></div></div></div>

Không hiểu!!!

Cái này chỉ là một chức năng trong admin dasboard.!?

1 Like

Mình cũng đang test nó để làm một web service…

1 Like

Code đó đã được xử lý ở controller (đúng hơn là sử dụng Discourse Poll Plugin)
daynhauhoc sử dụng Discourse làm nền tảng để xây dựng forum
https://meta.discourse.org/t/try-out-public-polls/45420

1 Like

Ổn định hay ko là do người code chứ dùng code thuần hay framework cũng như nhau thôi b,
net socket của nodejs thì m ko có đụng vào,

3 Likes

Bạn thử làm 1 mini web framework giống express. Tạo class Route có các thuộc tính và phương thức:

  • Property routes: mảng các route nhận từ client, routes = ['/login', '/admin', '/page'];
  • Property callbacks: mảng các callback tương ứng với routes, callbacks và routes cùng số phần tử.
  • Method listen(): gọi hàm http.createServer(), trong callback tạo vòng lặp for duyệt so sánh req.url = routes[i]
  • Method register(route, callback): thêm route vào routes, thêm callback và callbacks
  • Method static(dir): đọc tất cả các file trong thư mục dir (có đệ quy) và đăng ký từng file bằng register(), nếu thư mục dir có my.js thì static(dir) gọi register('/static/my.js', function (req, res) => res.write('<my.js-content), kiểm tra file, đọc file vào string có trong package ‘fs’ rồi.

Cuối cùng, app thế này:

let route = new Route();

route.static(__dirname);

route.register('/admin', (req, res) => {
  let content = 'Admin page';
  let html = `<h1>${content}</h1>`;
  res.write(html);
});

route.register('/contact', (req, res) => {
  let content = 'Contact page';
  let html = `<p>${content}</p>`;
  res.write(html);

});

route.listen(3000);

Vậy là có Node App đơn giản mà không đụng thư viện ngoài. :yum:
Bạn có thể mở rộng thêm xử lý route dạng ‘page/:id’, hoặc tách tách callbacks ra thành Controller.

hi, hay nhỉ, cám ơn bạn

1 Like

nunjucks is good template engine, thank you

${content} là gì bạn ???

Sao cái này không chạy bạn ???
{% include “pages/footer.html” with {‘name’:‘thuc 101’} %}

Chia ra đi bạn, nhìn rắc rối qua, từ routes gọi controller, controller trả về view và data cho nó, thao tác với DB qua models, bạn có thể xài Mongoose cho MongoDB hoặc Sequelize cho MySQL, Postgres,… Tốt hơn nữa thì phần views bạn dùng Angular hoặc React hoặc Vue để làm SPA và thao tác với Server qua Rest API hoặc là GraphQL, như thế tốt hơn đấy bạn ~~

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?