标签: mean-stack

将 Base64 编码的图像上传到 Node.js 服务器不起作用

我正在使用 MEAN.io,并且正在尝试上传 Base64 编码的图像。

客户端,AngularJS:

          // Image we're going to send it out
          var base64Image = files[i];

          var file = {
            image: base64Image,
            type: type,
            filetype: extension,
            characterId: character._id
          };

          var newFile = new MediaSendBase64(file);

          newFile.$save(function(image) {
            if ( !image ) {
              console.log('ERROR IMAGE');
            }
            else {
              console.log('SUCCESS.');

              console.log(image);
            }
          });
Run Code Online (Sandbox Code Playgroud)

服务器端、NodeJS、控制器:

app.use(bodyParser.json({limit: '50mb'}));
app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));

exports.uploadBase64 = function(req, res, next) {

  var uploadPath  = path.normalize(process.cwd() + '/packages/characters/public/assets/uploads/'),
      data        = new Buffer(''),
      imgURL      = undefined,        // public URL …
Run Code Online (Sandbox Code Playgroud)

javascript node.js express angularjs mean-stack

2
推荐指数
1
解决办法
3万
查看次数

在 MEAN 堆栈中,如何进行一次性 MongoDB 索引?

我在 Mongoose 中使用 Node.js 和 MongoDB。我正在通过 Node.js 连接到 Mongoose,

db = mongoose.connect('mongodb://localhost/my_database_name')
Run Code Online (Sandbox Code Playgroud)

如何在 node.js 中配置一次以在集合上创建索引

我的应用程序的目录结构基于本教程

HTML        views/
Angular.js  public/javascript/
Express.js  routes/
Node.js     app.js
Mongoose js models/, set up in app.js
Mongo db    set up in app.js
Run Code Online (Sandbox Code Playgroud)

指导我如何在 Node.js 的 MongoDB 集合上提供索引。

mongoose mongodb node.js mean-stack

2
推荐指数
1
解决办法
166
查看次数

从 Google Cloud Platform App Engine 启动脚本运行永久脚本

我已经编辑了在 Google Cloud Platform App Engine 上运行的实例之一的启动脚本变量。我希望它调用一个永久脚本来确保我的节点应用程序正在运行。所以我补充道:

cd /opt/bitnami/apps/myapp
forever start --workingDir /opt/bitnami/apps/myapp/ --sourceDir /opt
/bitnami/apps/myapp/ app.js
Run Code Online (Sandbox Code Playgroud)

在 #!/bin/bash 行之后(也尝试过不使用 cd,因为根据我的命令,这并不是真正必要的)。但是,一旦虚拟机启动,运行永久列表不会将我的永久任务列为已启动。如果我将该永久命令复制并粘贴到 gcloud 终端并运行,该任务显示正常,并且我的应用程序启动没有问题。

我在 bash 脚本中是否没有正确调用它?

bash google-app-engine node.js forever mean-stack

2
推荐指数
1
解决办法
2213
查看次数

如何停止 Node.js 服务器?

我刚刚在我的 DigitalOcean 服务器上设置了 MEAN 堆栈。我让测试应用程序运行良好,但是现在当我从 DigitalOcean 打开命令行时,它只显示信息:GET /modules/etc... 而我输入的部分是空白的。如何停止服务器并将其恢复到原来的位置,以便我可以访问文件夹等?

简单地执行 CTRL+C 并不会阻止服务器运行,这正是我需要做的。

node.js mean-stack digital-ocean

2
推荐指数
1
解决办法
3万
查看次数

文件无法复制到另一个目录(fs.access 和 copyFile)

我正在尝试将 pdf 和/或 word 文档从一个文件夹复制到另一个文件夹中。下面的代码有时有效,但有时则无效。

app.post('/api/file_archive/:file_name', function (req, res) {
    var file_name = req.params.file_name;
    var src = 'public/uploads/files/' + file_name;
    var dest = 'archived_files/files';

    if(file_name != "") {
        console.log("Entered fs access");
        fs.access(dest, function(err) {
            if(err)
                fs.mkdirSync(dest);

            copyFile(src, path.join(dest, file_name));
            res.json({ message: 'file archived!'});


        });
    };
});
Run Code Online (Sandbox Code Playgroud)

我目前收到此错误:

{ Error: ENOENT: no such file or directory, open 'C:\Users\duquetr\Documents\maize-and-blue-brief\public\uploads\files\1495121011192_Letter of Rec for RJ.pdf' at Error (native) errno: -4058, code: 'ENOENT', syscall: 'open', path: 'C:\\Users\\duquetr\\Documents\\maize-and-blue-brief\\public\\uploads\\files\\1495121011192_Letter of Rec for RJ.pdf' }
Run Code Online (Sandbox Code Playgroud)

我搜索了一下,似乎找不到任何与此代码有时有效的原因相关的内容。 …

javascript file-upload node.js mean-stack

2
推荐指数
1
解决办法
8227
查看次数

Mongoose/MongoDB:获取倒数第二个文档

我如何使用 Mongoose 获取第二天到最新或前一天的文档集合?

我获取最新数据的代码如下:

data.findOne()
        .sort({"_id": -1})
        .exec(function(err, data) {
            if (err) {
                console.log('Error getting data..');
            } 
            if (data) {
                res.json(data);
            }
            else {
                console.log('No data found!');
            }
        });
Run Code Online (Sandbox Code Playgroud)

这仅返回集合中最新的文档。相反,我需要最新的之前的一个,所以前一天的一个,我该如何做到这一点?

mongoose mongodb node.js express mean-stack

2
推荐指数
1
解决办法
2970
查看次数

ReferenceError:数字未在 MEAN 中定义

我正在MEAN中创建 CRUD 操作,我已创建 dataScehema.js文件来定义模型

var mongoose = require('mongoose');

var countrySchema = mongoose.Schema({
      name: { type: number },
      country: { type: number }    
});


module.exports = mongoose.model('country', countrySchema);
Run Code Online (Sandbox Code Playgroud)

并在我的index.js中定义node js服务器代码

var http = require('http');
var express = require('express');
var port = process.env.PORT || 8080;
var app = express();
var appRoutes = require('./routes/appRoute'); 
var mongoose = require('mongoose');
var bodyParser = require('body-parser');
var model = require('./model/dataSchema');

mongoose.connect('mongodb://localhost/meanDb')

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use('/',appRoutes);
http.createServer(app).listen(port);

console.log('Backend is running on port:',port); …
Run Code Online (Sandbox Code Playgroud)

node.js express mean-stack meanjs

2
推荐指数
1
解决办法
3498
查看次数

找不到模块“事件”

const EventEmitter = require('event');

const emitter = new EventEmitter();
Run Code Online (Sandbox Code Playgroud)

//注册一个监听器

emitter.on('messageLogged', function() {
  console.log("listen is called ");
});
Run Code Online (Sandbox Code Playgroud)

// 引发一个事件

emitter.emit('messageLogged');
Run Code Online (Sandbox Code Playgroud)

javascript node.js mean-stack

2
推荐指数
1
解决办法
2115
查看次数

无法连接到数据库MongoParseError: Unescaped at-sign in authority 部分

我正在尝试在我的 nodeJS 项目中连接到 mongodb 服务器。我有一个 db 配置文件作为 DB.js

module.exports = {
    DB: 'mongodb+srv://user%40gmail.com:%24ugar@cluster-jfgsm.mongodb.net/test?retryWrites=true'
 };
Run Code Online (Sandbox Code Playgroud)

用户名包含 @ (%40) 标记,因为它是电子邮件 ID,密码包含 $(%24) 个字符。

我已经在我的 server.js 文件中将它连接为

    mongoose = require('mongoose'),
    config = require('./config/DB');

    const app = express();

    mongoose.Promise = global.Promise;
    mongoose.connect(config.DB,  { useNewUrlParser: true } ).then(
      () => {console.log('Database is connected') },
      err => { console.log('Can not connect to the database'+ err)}
    );
Run Code Online (Sandbox Code Playgroud)

serve在 package.json 文件中添加了自定义选项来运行 nodemon。

"scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": …
Run Code Online (Sandbox Code Playgroud)

mongodb node.js mean-stack

2
推荐指数
1
解决办法
1万
查看次数

如何为生产准备 nodejs?

我有一个需要在 CPanel 上托管的 MEAN Stack 应用程序,但我以前从未部署过应用程序。通过使用以下命令在 dist 文件夹中创建一个包,可以轻松部署应用程序的 Angular 部分:

ng build --prod
Run Code Online (Sandbox Code Playgroud)

但我想知道我应该如何在服务器上发布我的后端代码。是否有任何命令/命令可以像 Angular 一样创建一个缩小的包?

我还想知道我是否需要安装一些 npm 包来确保我的应用程序在服务器上顺利运行?就像我在谷歌上搜索有关部署 nodejs 时一直在阅读有关 PM2 和 Nginx 的内容一样。那么它们有什么好处呢?

请提及任何可能有用的文章或视频。

角度版本 7

节点版本 8.11.3

Ubuntu 16.04

ubuntu node.js mean-stack angular

2
推荐指数
1
解决办法
7972
查看次数