标签: mean-stack

MEAN堆栈,Win 7,git push heroku master导致sh:bower:找不到错误

有些人可以告诉我为什么我在Windows 7上为一个基本的平均堆栈应用程序执行git push heroku master时会出现此错误?我正在尝试一个基本的平均堆栈应用程序并执行以下命令,最后"git push heroku master"命令导致错误 - bower安装
sh:bower:not found,npm ERR!奇怪的错误127,npm ERR!不行0代码!无法使用npm安装--production依赖项

cd mean-stack 
npm install
pm install -g bower
npm install -g yo grunt-cli bower@0.9.2
bower install
git init
git add .
git status
git add -f public/lib
git commit -m "init"
heroku create
git push heroku master
Run Code Online (Sandbox Code Playgroud)
 C:\ss\D1\google\04\mean\mean-stack>git push heroku master
    Enter passphrase for key '/c/ss/D1/google/04/eclipse/eclipse/.ssh/id_rsa':
    Counting objects: 466, done.
    Delta compression using up to 4 threads.
Compressing objects: 100% (448/448), done.
Writing objects: 100% (466/466), …
Run Code Online (Sandbox Code Playgroud)

git heroku mean-stack

8
推荐指数
2
解决办法
5869
查看次数

MEAN堆栈 - 依赖模板(Angular vs Templating Engines)?

这可能来自于MEAN堆栈的各个部分缺乏经验,但是我在app.js代码中看到的各种样板(mean.io,hackathon-starter等)总是有一个调用使用玉石模板引擎.我知道我可以将其切换到ejs等,但我想知道是否有办法使用AngularJS将所有页面都放在.html文件中?我感兴趣的组件/模板功能似乎已经在Angular中,所以如果我尝试服务器.html文件,我不确定我输了什么?

templating-engine node.js mean-stack

8
推荐指数
1
解决办法
6054
查看次数

将ExpressJS称为HTML页面的Rest API

我正在创建一个带有按钮的网页,通过ExpressJS,NodeJs使用Rest API构建从服务器加载数据.

var express=require('express');
var mysql=require('mysql');
var app=express();
var server=app.listen(3000,function(){
	console.log("Express is running on port 3000");
});

app.get('/search',function(req,res){
	var mysql=require('mysql');
	var connection = mysql.createConnection({
		connectionLimit : 100, //important
		host     : 'localhost',
		user     : 'root',
		password : '',
		database : 'node-test'
	});
	connection.connect();
	connection.query('SELECT name from users', function(err, rows, fields) {
		if (err) throw err;
		var data=[];
		for(i=0;i<rows.length;i++){
			data.push(rows[i].name);
		}
		res.end(JSON.stringify(data));
	});
});
Run Code Online (Sandbox Code Playgroud)

此应用程序的HTML页面如下所示

<button >Load from server</button>
<div></div>
<script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $(document).on('click','button', function(){
		$.ajax({
		  url: "http://localhost:3000/search"
		}).done(function() { …
Run Code Online (Sandbox Code Playgroud)

html node.js express mean-stack

8
推荐指数
1
解决办法
6457
查看次数

node.js服务器是否需要互联网连接才能运行?

我禁用互联网连接并运行节点服务器npm start,然后它抛出错误:

在此输入图像描述

现在启用互联网连接并运行服务器工作正常:

在此输入图像描述

所以,我想确认在启动服务器时是否真的需要连接到互联网?

如果它确实需要互联网连接,那么有任何想法让服务器脱机运行吗?

如果我连接到互联网并运行服务器,然后插上互联网连接,那么没有任何问题.一切正常.我不知道为什么只运行服务器需要互联网连接.

mongodb node.js express mean-stack mongoose-schema

8
推荐指数
1
解决办法
6292
查看次数

Express会话MongoDB存储:connect-mongo vs connect-mongodb-session

到现在为止(10.7.2016),express-session的github-page建议了两个mongodb会话商店:

  1. connect-mongo | 基于MongoDB的会话存储 - Github(775星)
  2. connect-mongodb-session | 由MongoDB构建和维护的基于MongoDB的轻量级会话存储 - Github(6星)

我应该选择哪一个,两者之间有什么区别?通过流行显然connect-mongo获胜,但它真的是"更好"的产品吗?为什么MongoDB本身很难用现有的解决方案编程connect-mongodb-session

任何建议都适用.

PS:我注意到有几个(过时的)SO问题比较了存储的不同MongoDB支持的会话,但是(据我注意到)非比较这些推荐的两个.

mongodb node.js express mean-stack express-session

8
推荐指数
1
解决办法
2251
查看次数

混合护照-facebook和passport-jwt的最佳方法是什么?

我是Node.js开发的新手,目前正在空闲时间从事宠物项目.

到目前为止,我已经使用passportpassport-jwt为策略创建了JWT身份验证,我在所有RESTful API中都使用它.

现在我想把它与某种Facebook身份验证相结合仍然希望坚持使用令牌身份验证.

目前,这是我生成和获取令牌的方式:

exports.authenticate = function(req, res) {
    User.findOne({
        email: req.body.email
    }, function(err, user) {
        if (err)
            return res.status(400).send(getErrorMessage(err));

        if (!user) {
            res.status(400).send({
                success: false,
                message: 'Authentication failed. User not found.'
            });
        } else {
            if (user.checkPassword(req.body.password)) {

                let token = jwt.encode(user, config.secretPhrase);

                res.json({
                    success: true,
                    token: 'JWT ' + token
                });
            } else {
                res.status(401).send({
                    success: false,
                    message: 'Authentication failed. Wrong password.'
                });
            }
        }
    });
};

app.route('/api/users/authenticate')
        .post(user.authenticate);
Run Code Online (Sandbox Code Playgroud)

并验证我执行以下操作:

let user = …
Run Code Online (Sandbox Code Playgroud)

node.js jwt passport-facebook mean-stack passport.js

8
推荐指数
1
解决办法
856
查看次数

Angularjs向服务器发送请求

我如何收集客户端发送的信息?在这种情况下,身份证?

我怎样才能获得身份证?

我使用客户端请求:

    return $http.post('/api/kill', {id:4}, {
              headers: {}
            })
Run Code Online (Sandbox Code Playgroud)

当我检查服务器支持req.body console.log(Req.body)我得到:

 { '{"id":4}': '' }
Run Code Online (Sandbox Code Playgroud)

req.body.id返回:

undefined
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到4的id?

EDIT1:

主要代码位于https://github.com/meanjs/mean

服务器端代码:

app.post('/api/kill', function (req, res) {


        console.log(req.body); // { '{"id":4}': '' }
        console.log(req.body.id); // undefined

    });
Run Code Online (Sandbox Code Playgroud)

node.js angularjs mean-stack

8
推荐指数
1
解决办法
882
查看次数

如何在同一个端口4200上运行angular 4 app和nodejs api进行生产和开发?

我已经创建了角度4应用程序,我可以运行它ng serve --open并运行localhost:4200,我想要的是我也创建了api使用nodejs相同的角度项目现在我想运行该API,localhost:4200/api所以我尝试过这样的事情

我的angular 4和nodejs srtucture看起来像这样

/dist
/server
  /routes
  /server
/src
app.js
package.json
Run Code Online (Sandbox Code Playgroud)

在app.js我用过

app.use(express.static(path.join(__dirname, 'dist')));
app.use('/app/api', apiRoutes);
const port = process.env.PORT || '3000';
server.listen(port, () => console.log(`API running on localhost:${port}`));
Run Code Online (Sandbox Code Playgroud)

一旦我运行使用nodemon app.js并继续localhost:3000它运行我的角度应用程序,它很好,而且我去localhost:3000/app/api它也工作得很好,

但是,当我更改角度应用程序时,它不会自动刷新我的应用程序,因为它正在运行节点应用程序当前用于刷新它我需要运行ng build而不是它将影响我对角度应用程序的新更改

所以,我想要运行ng serve --open它将运行角度应用程序但不运行节点js api所以想要运行两个,一旦我从角度应用程序或节点js应用程序更改它必须自动刷新.

node.js mean-stack angular

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

节点js跨域验证

我正在研究MEAN应用程序,我正在为我的项目使用Angular 4.对于身份验证,我已经实现了Passport js Local-strategy.我正在维护持久会话Express-session.事情一直很好,直到这里.

问题

在同一个域session工作正常,我能够验证用户.但在跨域,我无法维持会话.它为跨域中的每个新请求生成新的会话ID.

然后我尝试Passport-jwt但问题是我没有对用户会话的控制.我的意思是如果用户不活动,甚至在服务器重新启动时也token无法从服务器注销用户也不会失效.

所以简单来说,我正在寻找Node js(Express js)中的身份验证解决方案,我可以在其中管理跨域身份验证.

我已经看到了一些博客文章和像这样的问题这样,但它并不能帮助.

谢谢.

编辑

我应该编写自己的代码来实现这一目标吗?如果是这样,我有一个计划.

我的基本计划是:

  1. 用户将使用登录请求发送凭据.
  2. 我将检查数据库中的凭据.如果凭证有效,我将生成一个随机令牌并将其保存到用户表中的数据库中,并且我将通过成功响应向用户提供相同的令牌.
  3. 现在,每个请求用户都将发送令牌,我将检查数据库中每个请求的令牌.如果令牌有效,那么我将允许用户访问API,否则我将生成401状态代码的错误.
  4. 我正在使用Mongoose(MongoDB),所以我可以检查每个请求中的令牌(性能观点).

我认为这也是一个好主意.我只是想要一些建议,无论我是否正在考虑正确的方向.

我会得到这个:

  1. 应用程序中登录用户的数量(活动会话).
  2. 如果用户空闲一段时间,我可以注销用户.
  3. 我可以管理同一用户的多个登录会话(通过在数据库中进行输入).
  4. 我可以允许最终用户清除所有其他登录会话(如Facebook和Gmail优惠).
  5. 任何与授权相关的定制.

编辑2

我在这里分享我的app.js代码

var express = require('express');
var helmet = require('helmet');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var dotenv = require('dotenv');
var env = dotenv.load();
var …
Run Code Online (Sandbox Code Playgroud)

javascript authentication node.js express mean-stack

8
推荐指数
1
解决办法
2226
查看次数

预期“有效载荷”是一个普通对象:MEAN

这是我来自路由文件(users.js)的代码

User.findOne({linkedin_id: req.body.linkedin_id}, function(err, linkedinUser) {
    if(err) {
      console.log('err in finding linkedin user '+err);
    }
    // if user exits
    else if(linkedinUser) {
      console.log('user exist');
      const token = jwt.sign(linkedinUser, config.secret, {expiresIn: 604800});
      res.json({success: true, token: 'JWT '+token, user: {
          id: linkedinUser._id,
          linkedin_id: linkedinUser.linkedin_id,
          name: linkedinUser.name,
          username: linkedinUser.username,
          email: linkedinUser.email,
          lkprofilePic: linkedinUser.profilePic
        }, msg: 'user exits'
      });
    }
    // if user doesn't exist
    else {
      User.create({
        linkedin_id: req.body.linkedin_id,
        name: req.body.name,
        username: req.body.username,
        email: req.body.email,
        lkprofilePic: req.body.lkprofilePic
      }, function(err, result) {
        if(err) { …
Run Code Online (Sandbox Code Playgroud)

javascript node.js express mean-stack angular

8
推荐指数
1
解决办法
8741
查看次数