| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- var http = require('http');
- var url = require('url');
- var util = require('util');
- var querystring = require('querystring');
- var mongoose = require('mongoose');
- var mongodbUrl = 'mongodb://' + process.env.MONGODB_USERNAME + ':' + process.env.MONGODB_PASSWORD + '@' + process.env.MONGODB_PORT_27017_TCP_ADDR + ':' + process.env.MONGODB_PORT_27017_TCP_PORT + '/' + process.env.MONGODB_INSTANCE_NAME;
- var express = require('express');
- var app = express();
- var danmakuSchema = new mongoose.Schema({
- player: String,
- author: String,
- time: Number,
- text: String,
- color: String,
- type: String
- });
- var danmaku = mongoose.model('dan', danmakuSchema);
- app.all('*', function(req, res, next) {
- res.header('Access-Control-Allow-Origin', '*');
- res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild');
- res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');
- if (req.method == 'OPTIONS') {
- res.send(200);
- }
- else {
- next();
- }
- });
- app.get('/', function(req, res) {
- mongoose.connect(mongodbUrl);
- var db = mongoose.connection;
- db.on('error',console.error);
- var id = url.parse(req.url,true).query.id;
- db.once('open', function() {
- danmaku.find({player: id}, function (err, data) {
- if (err) {
- console.error(err);
- }
- var json = `{"code": 1,"danmaku":[`;
- for (var i = 0; i < data.length; i++) {
- json += JSON.stringify(data[i]);
- if (i !== data.length - 1) {
- json += `,`;
- }
- }
- json += `]}`;
- res.write(json);
- res.end();
- db.close();
- })
- });
- });
- app.post('/', function (req, res) {
- var body = '', jsonStr;
- req.on('data', function (chunk) {
- body += chunk;
- });
- req.on('end', function () {
- try {
- jsonStr = JSON.parse(body);
- } catch (err) {
- jsonStr = null;
- }
- // jsonStr ? res.send({"status":"success", "name": jsonStr.test}) : res.send({"status":"error"});
- var dan = new danmaku({player: jsonStr.player, author: jsonStr.author, time: jsonStr.time, text: jsonStr.text, color: jsonStr.color, type: jsonStr.type});
- dan.save(function (err, d) {
- if (err){
- console.error(err);
- }
- });
- });
- });
- app.listen(1207);
|