Nodejs 小白用户使用node开发移动产品服务端求思路

Nodejs 小白用户使用node开发移动产品服务端求思路

如题,问题有点入门,求版主手下留情。 在腾讯买了个云主机,准备弄一个给移动端提供数据的服务器;俺之前一直是做移动端的,node也是将将入门。

主机配置: 2.5双核+4g内存+100g硬盘,目前资源就这么点。 目标:给安卓/ios端提供webservice服务,90%的接口肯定是json数据,将来可能增加分享页面注册页面为数不多的web页面,目前快速搭建算是第一任务。

求问 1 目前是否需要依赖诸如express这类框架,目前对html的需求不多 2 使用mongodb是否太耗费资源。。。我目前的主机配置是否需要引用一个更轻量的数据库服务器呢 3 有最最简单的用户中心module推荐么。。 4 其他快速入手的module…

谢谢。


11 回复

当然可以!以下是对你的问题的回答,并附带一些简单的示例代码。

1. 是否需要依赖Express框架?

Express 是一个非常流行的 Node.js 框架,用于构建 Web 应用和服务端。即使你目前对 HTML 的需求不多,但 Express 提供了丰富的功能来简化路由、中间件处理等操作。对于初学者来说,使用 Express 可以让你更快地上手。

示例代码:

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

app.get('/', (req, res) => {
    res.send('Hello World!');
});

app.listen(3000, () => {
    console.log('Server is running on port 3000');
});

2. 使用 MongoDB 是否太耗费资源?

MongoDB 是一个 NoSQL 数据库,适用于处理大量非结构化数据。虽然 MongoDB 对硬件资源有一定的要求,但如果你的应用主要处理 JSON 数据且负载不是特别高,你的配置(2.5GHz双核+4GB内存)应该能够应对。

如果担心资源消耗,你可以考虑使用 SQLite 或者 NeDB 这样的嵌入式数据库,它们占用的资源较少。

NeDB 示例代码:

const Datastore = require('nedb');
const db = new Datastore({ filename: 'data.db', autoload: true });

db.insert({ name: 'John Doe' }, (err, newDoc) => {
    if (err) throw err;
    console.log(newDoc);
});

3. 最简单的用户中心模块推荐

对于用户认证和管理,你可以考虑使用 Passport.js,它是一个灵活的模块,支持多种身份验证策略。

示例代码:

const express = require('express');
const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;

passport.use(new LocalStrategy(
    function(username, password, done) {
        // 验证逻辑
        return done(null, { id: username });
    }
));

app.use(passport.initialize());
app.use(passport.session());

app.post('/login', 
    passport.authenticate('local', { failureRedirect: '/login' }),
    function(req, res) {
        res.redirect('/');
    }
);

4. 其他快速入手的模块

  • body-parser:解析 HTTP 请求体中的 JSON 和 URL 编码数据。
  • 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());

希望这些信息对你有所帮助!如果你有任何进一步的问题,欢迎随时提问。


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());

希望这些信息对你有所帮助!祝你项目顺利!

回到顶部