关于Nodejs实现前后端通吃开发模式的感想
关于Nodejs实现前后端通吃开发模式的感想
还好有nodejs,否则前端开发工程师手里那不被人看得起的html、css、js能力就被荒废在一遍又一遍的界面改版的痛苦中。 有了modejs,加上对express框架、nosql数据库的学习,我就可以连同后端业务到前端功能展现统统做完,那个感觉就一个字“爽”,两个字“真爽”,三个字“实在是爽”,对不起字数算错了。 有了nodejs, APP也不在话下,无论是webapp,还是hybridapp都可以。 一个产品,我和设计师两个人就搞定了。
说到这里,还是先学一下nodejs吧,看看再说,否则牛皮吹破了就no zuo no die啦。
一看帖子这么乐观,就知道这位朋友还没进坑。
前后端 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 那些坑, 还有复杂的内存调试, 函数变换之类的东西, 我也照样搞不清楚
[@SoaringTiger](/user/SoaringTiger) 放弃python了?
[@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 让前端开发者能够轻松涉足后端开发,从而实现真正的全栈开发体验。