如何在 Node.js 上建立网站?

Posted

技术标签:

【中文标题】如何在 Node.js 上建立网站?【英文标题】:How to build a website on Node.js? 【发布时间】:2012-01-31 12:01:50 【问题描述】:

经过几年的 PHP 编程,我刚刚开始涉足 Node.js,我想构建一个 Node.js我下一个项目的应用程序,但我不知道该怎么做。

是否有任何用于 Node.js 快速入门的资源?

提前致谢!

【问题讨论】:

【参考方案1】:

您应该将 Node.js 视为某种 Apache + php,这意味着您可以使用 Node 对您的网站和网络服务器进行编程。

Node 与您的基本 PHP 有一些重要的区别,它是事件的、异步的、非阻塞的。你要学会如何处理回调,不要阻塞事件循环等。

你应该从一开始就尝试学习 Node 的基本知识,这里有一些很棒的资源:@​​987654321@(我最喜欢的是nodetuts.com 和它的作者的优秀书籍,Hands on Node)。

了解基础知识后,您会发现 Express 作为 Web 框架非常有用,如果您的应用专注于实时,您会发现 Socket.IO。

【讨论】:

【参考方案2】:

我认为您正在寻找一个 node.js 跳转开始以使用 node.js 构建一些有意义的网页。看看express,它是一个节点Web框架。他们提供了一个不错但简短的教程(根据指南)。

【讨论】:

【参考方案3】:

您需要在 Web 服务器上运行 Node.js。基本上,您需要一个可以完全控制的 VPS 或专用服务器。 [PHP 通过标准 Web 服务器 Apache 运行。 Node.js 网络服务器。]

或者你找到一个Node.js host 会为你做这件事。

【讨论】:

我知道这是一篇旧文章,但是可以在我的大学计算机上运行 node.js 服务器吗? Node JS 主机的链接已失效,请更新您的答案【参考方案4】:

Node.js 本质上是您的网络服务器,它将取代 Apache,因此您会发现运行 Nodejs 的唯一主机是专用服务器或云实例,您必须在其中安装和运行 nodejs。你运行 node.js 的机器需要有一个指向它的域名,或者你可以访问服务器的唯一方法是通过它的 IP 地址,在这种情况下是你的本地主机。

【讨论】:

【参考方案5】:

另一种选择是使用类似 Knockout.js (http://knockoutjs.com/) 的东西,并让页面对 Node.js 服务器进行 JSONP 调用。使用 Node 向客户端发送 JSON 非常容易,因为它是服务器上的 javascript。在客户端上使用框架可以非常轻松地基于该 JSON 数据创建动态页面。

缺点是旧浏览器没有优雅的降级。优势是从一开始就内置了强大的 AJAX 的潜在超快网站。

以下是一些使用 Node 生成 JSONP 响应的示例代码:

function writeJsonpResponse(res, jsonpcallback, obj) 
    var serialized = JSON.stringify(obj);

    res.writeHead(200, 'Content-Type': 'application/javascript');
    res.write(jsonpcallback + '(' + serialized + ');');
    res.end();

【讨论】:

【参考方案6】:

阅读自述文件。 设置环境。 看看 package.json (或 npm init 创建一个) 安装依赖项(npm install / axios、nodemon、express、mysql、react、babel) 如果需要,添加脚本以启动服务器和 webpack 熟悉文件结构。 关注点分离 - public/dist、服务器、数据库、客户端 考虑数据流 确保基本的 html 结构。 检查 bundle.js 文件/它需要的所有内容是否已加载 需要一个 div id 来呈现反应(如应用程序或根) 启动 Express 服务器。 启动服务器和 webpack 是独立的终端。 检查服务器正在监听的console.log! 在您的服务器上编写路由(获取和发布请求)。 检查 get & post 请求是否与 Postman 一起工作! 创建 mySQL 数据库 (db/index.js)。 设计和导入模式(如何构建数据表)。 确保您在导入您的架构女孩时位于 db 文件夹中! 将数据库连接到服务器。 检查console.log 连接是否成功! 编写插入/检索数据库查询函数。 不要忘记将这些查询模块导出到服务器! 将在服务器中调用路由/获取和发布请求中的查询函数 设置基本的 React 结构。 index.js 唯一的任务是将你的 app 组件渲染到 div id app 需要一个有状态的 App 组件来渲染所有其他组件 记得导入和导出默认的一切! 设计其余的组件,决定它们是功能性(无状态)还是类组件(有状态)。 画出来! 您需要传递哪些道具(数据和功能)? 编写那些组件。 处理一个贯穿所有部分的数据流。让您的输入处理程序将客户端 POST 请求(使用 axios)发送到服务器路由,服务器路由将执行您的 API 调用(如果有),然后将该数据插入数据库。 记得处理你的错误! 处理事件/条件渲染。 1. 用户事件给出输入(onChange e.target.value) 2. 编写一个 handleChange f(x) 来更新新输入的状态 3.输入提交(onClick) 3.编写一个handleSubmit f(x),它接受更新的状态并发出一个带有input的axios POST请求到适当的服务器路由 记得适当地绑定方法函数! 在路由/获取和发布请求中调用查询功能。 检查来自客户端的数据是否存储在数据库中。 描述那些桌子我的朋友! 在客户端向 api 端点执行 AJAX 获取请求(使用 axios 或 fetch)。 将传入的数据存储在 setState 中 可能希望在 componentDidMount 中执行 GET 请求以始终为客户端呈现适当的信息 耶!您成功地设置了您的服务器、数据库和客户端,在它们之间传递了数据,潜在地操纵了数据,存储了该数据,并向客户端显示了适当的数据! 处理那些用户故事!

【讨论】:

以上是关于如何在 Node.js 上建立网站?的主要内容,如果未能解决你的问题,请参考以下文章

如何在已建立的网站上实施“维护模式”

如何设置阻止恶意网站转发到我的网站(我的网站建立在 gatsby 上并托管在 netlify 上)

gitHub 建立博客

如何让 EC2 上的 Node.js 服务器永远运行?

如何建立自己的网站

webrtp官方demo运行