关于Nodejs实现前后端通吃开发模式的感想

关于Nodejs实现前后端通吃开发模式的感想

还好有nodejs,否则前端开发工程师手里那不被人看得起的html、css、js能力就被荒废在一遍又一遍的界面改版的痛苦中。 有了modejs,加上对express框架、nosql数据库的学习,我就可以连同后端业务到前端功能展现统统做完,那个感觉就一个字“爽”,两个字“真爽”,三个字“实在是爽”,对不起字数算错了。 有了nodejs, APP也不在话下,无论是webapp,还是hybridapp都可以。 一个产品,我和设计师两个人就搞定了。

说到这里,还是先学一下nodejs吧,看看再说,否则牛皮吹破了就no zuo no die啦。


43 回复

一看帖子这么乐观,就知道这位朋友还没进坑。


关于Nodejs实现前后端通吃开发模式的感想

随着互联网技术的发展,前端开发工程师不再局限于HTML、CSS和JavaScript的能力。过去,这些技能常常被低估,特别是在频繁进行界面改版的过程中。然而,Node.js的出现改变了这一切。

Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它使得JavaScript可以运行在服务器端。借助Node.js,前端开发者不仅可以处理客户端逻辑,还可以轻松地处理服务器端的业务逻辑,实现了前后端的无缝衔接。

使用Express框架搭建Web应用

首先,我们来看一下如何使用Express框架来搭建一个简单的Web应用。Express是一个简洁而灵活的Node.js Web应用框架,提供了强大的特性来帮助你创建各种Web应用,以及HTTP工具。

  1. 安装Node.js和npm: 确保你的系统上已经安装了Node.js和npm(Node包管理器)。你可以通过以下命令检查是否已安装:

    node -v
    npm -v
    
  2. 创建项目并安装依赖: 创建一个新的目录,并在该目录中初始化一个新的Node.js项目:

    mkdir myapp
    cd myapp
    npm init -y
    

    安装Express框架和其他必要的依赖:

    npm install express --save
    
  3. 编写基本的服务器代码: 在项目的根目录下创建一个名为index.js的文件,并添加以下代码:

    const express = require('express');
    const app = express();
    const port = 3000;
    
    app.get('/', (req, res) => {
      res.send('Hello World!');
    });
    
    app.listen(port, () => {
      console.log(`App listening at http://localhost:${port}`);
    });
    
  4. 启动服务器: 运行以下命令启动服务器:

    node index.js
    

    打开浏览器访问http://localhost:3000,你应该能看到“Hello World!”的消息。

使用NoSQL数据库存储数据

除了处理HTTP请求,Node.js还可以轻松地与NoSQL数据库(如MongoDB)集成。这使得我们可以方便地存储和检索数据,而无需担心复杂的SQL查询。

  1. 安装MongoDB驱动: 安装mongodb库以便与MongoDB交互:

    npm install mongodb --save
    
  2. 连接到MongoDB数据库: 修改index.js文件,添加以下代码以连接到MongoDB数据库并插入一条记录:

    const MongoClient = require('mongodb').MongoClient;
    const url = 'mongodb://localhost:27017';
    
    MongoClient.connect(url, { useUnifiedTopology: true }, (err, client) => {
      if (err) throw err;
      const db = client.db('testdb');
      db.collection('users').insertOne({ name: 'Alice', age: 25 }, (err, res) => {
        if (err) throw err;
        console.log("Document inserted");
        client.close();
      });
    });
    

通过上述步骤,你可以看到Node.js不仅可以让前端开发者更好地掌握整个开发流程,还可以简化前后端之间的通信,提高开发效率。此外,Node.js在移动端应用(包括webapp和hybridapp)方面也有广泛的应用,使得一个产品仅靠一两个开发者就能完成从设计到开发的全过程。

所以,如果你还没有学习Node.js,现在就开始吧!

前后端 JavaScript 好处是门槛更低, 而不是没有门槛.

还是不够强大

#一看帖子这么乐观,就知道这位朋友还没进坑。#

#一看帖子这么乐观,就知道这位朋友还没进坑。#

前端做好了也牛逼的

#一看帖子这么乐观,就知道这位朋友还没进坑。#

#一看帖子这么乐观,就知道这位朋友还没进坑。#

跟上队形

#一看帖子这么乐观,就知道这位朋友还没进坑。#

都是码农,何必分前后端

#一看帖子这么乐观,就知道这位朋友还没进坑。#

#一看帖子这么乐观,就知道这位朋友还没进坑。#

#一看帖子这么乐观,就知道这位朋友还没进坑。# 我是看热闹的

最大的好处是减少了在不同语言的语法之间切换思维的成本。 我现在用KoaJS + Mongoose + MongoDB + AngularJS 用得挺舒服的。 PS: 我原来用的是Tornado

#一看帖子这么乐观,就知道这位朋友还没进坑。#

/* 一看帖子这么乐观,就知道这位朋友还没进坑。*/

其实多踩坑挺好……

#一看帖子这么乐观,就知道这位朋友还没进坑。#

#一看帖子这么乐观,就知道这位朋友还没进坑。#

有些人啊,自从用了Node.js 后,发现可以用Javascript通吃前后端,于是就号称自己是全端开发。我想说,我在十多年前学Java的时候,那时Java通吃所有端,无论是CLI/GUI的,还是Web端和Flash啥的,包括什么Win/Linux/Unix平台,手机端、嵌入式的统统吃掉。就这样,那时都没人说自己懂Java就是全端开发。 ----转

#一看帖子这么乐观,就知道这位朋友还没进坑。#

[@zhounanbin](/user/zhounanbin) 咳。。。所以劣势也出来了,10年以上的java工程师一抓也一大把,相比前端5年以上或者noder3年以上的,就拼不过啊

#一看帖子这么乐观,就知道这位朋友还没进坑。#

#一看帖子这么乐观,就知道这位朋友还没进坑。#

#一看帖子这么乐观,就知道这位朋友还没进坑。#

#一看帖子这么乐观,就知道这位朋友还没进坑。#

[@jiyinyiyong](/user/jiyinyiyong) 说js门槛低? 我觉得精通js 比精通c++还难 只是看上去容易罢了~ c c++毕竟是底层东西 就那点 多年也不怎么变 js这种解释语言 灵活多变 原型继承链 面试了一天20多个js开发者 没一个搞明白的 当码农容易 写好程序不是一件容易事儿~

[@yaochun](/user/yaochun) 10年以上java工程师肯定做架构了

10年前端仍旧是前端

[@freew01f](/user/freew01f) 哦, 难以精通跟门槛低不冲突… 只要学到能写应用写业务时间很短就算门槛低了. 要精通确实不是容易的事情, C++ 类型啊, 语法啊我到现在都搞不定, JavaScript 那些坑, 还有复杂的内存调试, 函数变换之类的东西, 我也照样搞不清楚

[@jiyinyiyong](/user/jiyinyiyong) 复杂的内存调试,JS不是有垃圾回收么?

一看想用node,肯定还没入坑。

后端的东西坑很深, 不是一个nodejs就能解决的.

[@chapagaga](/user/chapagaga) JavaScript 部分垃圾回收不了解… 前端比较容易出问题的地方是 DOM 和 JavaScript 对象之间存在复杂的关系, 有点时候可能出现循环引用, 比如 DOM 的事件里引用 JavaScript, JavaScript 闭包引用 DOM… 然后就无法正常回收了… 还有就是单页面莫名其妙几百 M 内存… 不清楚从哪些方面进行优化

[@chapgaga](/user/chapgaga) 其实用了Koa以后,感觉和写Tornado没什么差别(实际上更加简单),而在异步领域,Python的可用资源显然没法和Node比。 当然,我还是经常拿Python写一些小操作(比如数据库)

这坑好欢乐

[@freew01f](/user/freew01f) 是啊 精通C++怎么说都应该是精通js的前提吧 没读过SpiderMonkey 没给v8贡献过代码 怎么能说精通js

#一看帖子这么乐观,就知道这位朋友还没进坑。#

一看帖子这么乐观,就知道这位朋友还没进坑。

#一看帖子这么乐观,就知道这位朋友还没进坑。#

#一看帖子这么乐观,就知道这位朋友还没进坑。#

Node.js 的出现确实改变了前端开发者的角色,让开发者可以从前端做到后端,实现所谓的“全栈”开发。这种“前后端通吃”的开发模式不仅提高了开发效率,还简化了项目管理。以下是一些关键点和代码示例,帮助你理解和实践这一开发模式。

关于 Node.js 实现前后端通吃开发模式的感想

Node.js 通过其强大的 JavaScript 运行时环境,使得开发者可以用一种语言(JavaScript)处理从前端展示到后端逻辑的整个开发过程。这不仅减少了学习成本,还提高了代码的复用性和可维护性。

示例代码

假设我们要创建一个简单的待办事项应用,包括前端界面和后端API。

1. 后端(Express 框架)

const express = require('express');
const app = express();
const port = 3000;

// 使用中间件解析 JSON 请求体
app.use(express.json());

// 创建一个简单的待办事项数组
let todos = [];

// 创建待办事项 API
app.post('/api/todos', (req, res) => {
    const todo = req.body;
    todos.push(todo);
    res.status(201).send(todo);
});

// 获取所有待办事项
app.get('/api/todos', (req, res) => {
    res.send(todos);
});

// 启动服务器
app.listen(port, () => {
    console.log(`Server running at http://localhost:${port}/`);
});

2. 前端(HTML + JavaScript)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>To-Do List</title>
</head>
<body>
    <h1>To-Do List</h1>
    <input type="text" id="todoInput" placeholder="Enter your to-do">
    <button onclick="addTodo()">Add To-Do</button>
    <ul id="todosList"></ul>

    <script>
        function addTodo() {
            const input = document.getElementById('todoInput');
            fetch('/api/todos', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json'
                },
                body: JSON.stringify({ text: input.value })
            })
            .then(response => response.json())
            .then(data => {
                displayTodos();
                input.value = '';
            });
        }

        function displayTodos() {
            fetch('/api/todos')
            .then(response => response.json())
            .then(data => {
                const list = document.getElementById('todosList');
                list.innerHTML = '';
                data.forEach(todo => {
                    const li = document.createElement('li');
                    li.textContent = todo.text;
                    list.appendChild(li);
                });
            });
        }

        // 初始化显示所有待办事项
        displayTodos();
    </script>
</body>
</html>

总结

通过上述示例,可以看到使用 Node.js 和 Express 框架可以轻松地实现前后端交互。这种方式不仅提升了开发效率,也使项目更加模块化和易于维护。Node.js 让前端开发者能够轻松涉足后端开发,从而实现真正的全栈开发体验。

回到顶部