Nodejs 小白用户使用node开发移动产品服务端求思路
Nodejs 小白用户使用node开发移动产品服务端求思路
如题,问题有点入门,求版主手下留情。 在腾讯买了个云主机,准备弄一个给移动端提供数据的服务器;俺之前一直是做移动端的,node也是将将入门。
主机配置: 2.5双核+4g内存+100g硬盘,目前资源就这么点。 目标:给安卓/ios端提供webservice服务,90%的接口肯定是json数据,将来可能增加分享页面注册页面为数不多的web页面,目前快速搭建算是第一任务。
求问 1 目前是否需要依赖诸如express这类框架,目前对html的需求不多 2 使用mongodb是否太耗费资源。。。我目前的主机配置是否需要引用一个更轻量的数据库服务器呢 3 有最最简单的用户中心module推荐么。。 4 其他快速入手的module…
谢谢。
1 用 express 2 你的主机配置很好,用 mongodb 或者 mysql 随你心意 3 passport 这个库好像OK吧 4 这个的话,不懂有没有人有整理,不过用到什么就找什么的吧
谢谢楼上建议!
直接用 express 并非最佳实践,建议结合 bearcat,通过bearcat提供的 IoC,AOP,一致性配置来编写简单,可维护的Node.js
快速使用 bearcat express 开发
npm install -g yo
npm install -g generator-bearcat
mkdir your_mobile_app
cd your_mobile_app
yo bearcat
选择 bearcat-web 即可
碉堡!到处都能推广熊猫
单台4g的VPS就别考虑mongodb了, 想schemaless就用postgresql(hstore/json/jsonb/…), 不然用mysql也挺好的.
使用json比较合适
可是试试 swagerr,是RESTfull风格的api,还有相应的前端实现。你可以到git上面去找找看。https://github.com/wordnik/swagger-node-express
给移动端提供数据,权限这块楼主是怎么搞的?比如要求登陆,每次访问是携带token还是怎么滴呢
针对你的需求,以下是一些建议和示例代码:
1. 是否需要Express框架?
Express 是一个轻量级的 Web 应用框架,可以帮助你更快地构建 API。尽管你现在只需要 JSON 数据接口,但使用 Express 可以让你后续扩展更容易。
示例代码:
const express = require('express');
const app = express();
app.get('/api/data', (req, res) => {
res.json({ message: 'Hello from server' });
});
app.listen(3000, () => console.log('Server running on port 3000'));
2. MongoDB 是否太耗费资源?
MongoDB 是一个 NoSQL 数据库,非常适合处理 JSON 格式的数据。如果你的接口主要是处理 JSON 数据,MongoDB 是一个不错的选择。对于你目前的配置(2.5双核+4G内存+100G硬盘),MongoDB 的资源消耗应该可以接受。
示例代码:
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/mydatabase', { useNewUrlParser: true, useUnifiedTopology: true });
const userSchema = new mongoose.Schema({
name: String,
email: String
});
const User = mongoose.model('User', userSchema);
// 创建用户
const newUser = new User({ name: 'John Doe', email: 'john@example.com' });
newUser.save()
.then(() => console.log('User saved'))
.catch(err => console.error(err));
3. 最简单的用户中心模块推荐
Passport.js
是一个流行的认证中间件,适合用来处理用户登录、注册等功能。
示例代码:
const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;
passport.use(new LocalStrategy(
function(username, password, done) {
// 检查用户名和密码
if (username === 'admin' && password === 'password') {
return done(null, { id: 1, username: 'admin' });
} else {
return done(null, false);
}
}
));
app.post('/login',
passport.authenticate('local', { failureRedirect: '/login' }),
function(req, res) {
res.send('Login successful!');
}
);
4. 其他快速入手的模块
body-parser
:用于解析请求体中的 JSON 数据。cors
:处理跨域请求。helmet
:增加安全性。
示例代码:
const bodyParser = require('body-parser');
const cors = require('cors');
const helmet = require('helmet');
app.use(bodyParser.json());
app.use(cors());
app.use(helmet());
希望这些信息对你有所帮助!祝你项目顺利!