Nodejs: What is Bluemix? Support NodeJS Strongly with Node.js Web IDE

Nodejs: What is Bluemix? Support NodeJS Strongly with Node.js Web IDE

What is Bluemix? https://ace.ng.bluemix.net/

BlueMix Docs: https://www.ng.bluemix.net/docs/# IBM® Bluemix™ is an open-standards, cloud-based platform for building, managing, and running apps of all types, such as web, mobile, big data, and smart devices. Capabilities include Java, mobile back-end development, and application monitoring, as well as features from ecosystem partners and open source—all provided as-a-service in the cloud.

这是一个 利用NodeJS + MongoDB + WebSocket + JQuery + Bootstrap 实现实时投票系统,需要支持HTML5的浏览器,自动适配移动设备浏览器。仅供技术学习参考. 杂碎级应用 http://polling.ng.bluemix.net


3 回复

Nodejs: What is Bluemix? Support NodeJS Strongly with Node.js Web IDE

What is Bluemix?

Bluemix is a cloud-based platform developed by IBM that supports the development, deployment, and management of applications across various domains like web, mobile, big data, and IoT. It provides a rich set of services and tools to help developers build robust applications. Bluemix is built on top of Cloud Foundry, an open-source platform-as-a-service (PaaS).

You can explore more about Bluemix at:

Building a Real-Time Voting System with Node.js

Here’s an example of how you can use Node.js along with other technologies like MongoDB, WebSocket, JQuery, and Bootstrap to build a real-time voting system.

Prerequisites
  • Node.js installed
  • MongoDB installed or a remote MongoDB instance
  • Basic understanding of HTML5, CSS, and JavaScript
Step-by-Step Guide
  1. Set up your project structure:
mkdir voting-system
cd voting-system
npm init -y
  1. Install necessary dependencies:
npm install express mongoose socket.io body-parser
  1. Create the server file (server.js):
const express = require('express');
const http = require('http');
const mongoose = require('mongoose');
const socketIo = require('socket.io');

// Initialize Express app
const app = express();
const server = http.createServer(app);
const io = socketIo(server);

// Connect to MongoDB
mongoose.connect('mongodb://localhost/voting', { useNewUrlParser: true, useUnifiedTopology: true });

// Define schema and model
const voteSchema = new mongoose.Schema({
    option: String,
    count: Number
});
const Vote = mongoose.model('Vote', voteSchema);

// Routes
app.get('/', (req, res) => {
    res.sendFile(__dirname + '/index.html');
});

// WebSocket handling
io.on('connection', (socket) => {
    console.log('A user connected');

    // Fetch votes and send them to the client
    Vote.find({}, (err, votes) => {
        if (!err) {
            socket.emit('votes', votes);
        }
    });

    socket.on('vote', (data) => {
        const vote = new Vote(data);
        vote.save((err) => {
            if (!err) {
                io.emit('newVote', data);
            }
        });
    });
});

server.listen(3000, () => {
    console.log('Server running on port 3000');
});
  1. Create the HTML file (index.html):
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Real-Time Voting System</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
    <div class="container mt-5">
        <h1>Real-Time Voting System</h1>
        <form id="voteForm">
            <input type="text" name="option" placeholder="Enter your vote" required>
            <button type="submit">Submit</button>
        </form>
        <ul id="votesList"></ul>
    </div>

    <script src="/socket.io/socket.io.js"></script>
    <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
    <script>
        $(document).ready(() => {
            const socket = io();

            // Fetch initial votes
            socket.on('votes', (votes) => {
                let listItems = '';
                votes.forEach(vote => {
                    listItems += `<li>${vote.option}: ${vote.count}</li>`;
                });
                $('#votesList').html(listItems);
            });

            // Handle form submission
            $('#voteForm').on('submit', (e) => {
                e.preventDefault();
                const formData = $('#voteForm').serializeArray().reduce((obj, item) => ({ ...obj, [item.name]: item.value }), {});
                socket.emit('vote', formData);
            });

            // Listen for new votes
            socket.on('newVote', (vote) => {
                $('#votesList').append(`<li>${vote.option}: 1</li>`);
            });
        });
    </script>
</body>
</html>

This example demonstrates how to create a simple real-time voting system using Node.js, MongoDB, WebSocket, JQuery, and Bootstrap. You can deploy this application on Bluemix using the Node.js Web IDE for a seamless development experience.


Bluemix 是 IBM 提供的一个基于云的平台,支持多种开发环境和技术栈,特别适合用于构建、管理和运行各种类型的应用程序,包括 Web 应用、移动应用、大数据应用等。它提供了丰富的服务,如 Java 支持、移动后端开发、应用程序监控,并且集成了来自生态系统合作伙伴和开源社区的各种工具。

对于 Node.js 开发者来说,Bluemix 提供了 Node.js Web IDE(集成开发环境),方便开发者直接在云端编写、调试和部署 Node.js 应用。该 IDE 集成了 Git 版本控制、构建和部署流水线等功能,极大地简化了开发流程。

示例代码:一个简单的 Node.js 应用

以下是一个使用 Express 框架创建的简单 Node.js 应用,可以部署到 Bluemix 上:

// 引入 Express 模块
const express = require('express');
const app = express();

// 设置根路径的路由
app.get('/', (req, res) => {
    res.send('Hello, Bluemix!');
});

// 监听指定端口
const port = process.env.PORT || 3000;
app.listen(port, () => {
    console.log(`Server is running on port ${port}`);
});

这段代码定义了一个简单的 HTTP 服务器,当访问根路径 / 时返回 “Hello, Bluemix!”。你可以通过 Bluemix 的 Web IDE 将这个应用部署到云端,享受开箱即用的服务和便捷的开发体验。

通过 Bluemix,Node.js 开发者可以专注于业务逻辑的实现,而无需过多关注基础设施的搭建与维护。

回到顶部